





<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">



  <link crossorigin="anonymous" media="all" integrity="sha512-dcLOgLGIYz/Y2ShFrU1QIrJkdqKiEQTjJoK2MCHtHxMhGAWpMAXyHjWgNqTdNzTcvNINu08lYn79EStdgLYUSQ==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-911c0a12b70ded25a66d3432705a7c0f.css" />

    <link crossorigin="anonymous" media="all" integrity="sha512-XJNYTvrBO0RaqB0tZVdKYfFq2gUiGETJOuCNi0+e/mIPlZ+UdLrTBgJ60Lx3tvS88u7LstVp5RDs/mBTR/jKjA==" rel="stylesheet" href="https://github.githubassets.com/assets/github-dc94120ec27a5bf991be50539bbad76e.css" />





  <meta name="viewport" content="width=device-width">

  <title>make sourcegraph support redis password by alexandnpu · Pull Request #3221 · sourcegraph/sourcegraph</title>
    <meta name="description" content="Test plan:
sourcegraph should be able to support redis with authorization.
Note:
I failed to setup my dev environment to test on my own mac, as the dev setup is not that easy enough for only the server side.
Maybe this PR is an idea to show you that sourcegraph should be able to use password to connect redis. Because in my company, every redis server should use password to connect.">
    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
  <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
  <meta property="fb:app_id" content="1401488693436528">

    <meta name="twitter:image:src" content="https://avatars2.githubusercontent.com/u/3979584?s=400&amp;v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="make sourcegraph support redis password by alexandnpu · Pull Request #3221 · sourcegraph/sourcegraph" /><meta name="twitter:description" content="Test plan:
sourcegraph should be able to support redis with authorization.
Note:
I failed to setup my dev environment to test on my own mac, as the dev setup is not that easy enough for only the s..." />
    <meta property="og:image" content="https://avatars2.githubusercontent.com/u/3979584?s=400&amp;v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="make sourcegraph support redis password by alexandnpu · Pull Request #3221 · sourcegraph/sourcegraph" /><meta property="og:url" content="https://github.com/sourcegraph/sourcegraph/pull/3221" /><meta property="og:description" content="Test plan:
sourcegraph should be able to support redis with authorization.
Note:
I failed to setup my dev environment to test on my own mac, as the dev setup is not that easy enough for only the s..." />

  <link rel="assets" href="https://github.githubassets.com/">
  <link rel="web-socket" href="wss://live.github.com/_sockets/VjI6MzgyNzA5NjM2OjljYjdjMGU1ODJjOTEzYjlkMTQ3NmVjZDYwMzUyOWM0MDIyOWU0YjRlZjNiYWY1NWViYzZjMWYzYzMxYzEyZTI=--df0d521074ac3c187faaf9519a55326f618652c4">
  <meta name="pjax-timeout" content="1000">
  <link rel="sudo-modal" href="/sessions/sudo_modal">
  <meta name="request-id" content="C1A5:1FB94:1D9944:2C1953:5CB87E24" data-pjax-transient>

    <meta name="hovercard-subject-tag" content="pull_request:267437447" data-pjax-transient>



  <meta name="selected-link" value="repo_pulls" data-pjax-transient>

      <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
    <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
    <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">

  <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="C1A5:1FB94:1D9944:2C1953:5CB87E24" /><meta name="octolytics-dimension-region_edge" content="ams" /><meta name="octolytics-dimension-region_render" content="iad" /><meta name="octolytics-actor-id" content="1741180" /><meta name="octolytics-actor-login" content="lguychard" /><meta name="octolytics-actor-hash" content="1b59c154e057c2d407257621fb6e4b8828b3625d9c8781f14d6c02dffd7a4100" />
<meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/pull_requests/show" data-pjax-transient="true" />



    <meta name="google-analytics" content="UA-3769691-2">

  <meta class="js-ga-set" name="userId" content="d006a5262acdf70eda7670879e8c073e">

<meta class="js-ga-set" name="dimension1" content="Logged In">





      <meta name="hostname" content="github.com">
    <meta name="user-login" content="lguychard">

      <meta name="expected-hostname" content="github.com">
    <meta name="js-proxy-site-detection-payload" content="ZmQxN2Y2MTgwMmQ0MzIwZjM1OWNiNzFlMGMxODIxMDZkNTQ4ZDNkMmNmYjQyNzViOWRjYTlhZTFlZDA2YzE3N3x7InJlbW90ZV9hZGRyZXNzIjoiOTIuMTM5LjkwLjIzMCIsInJlcXVlc3RfaWQiOiJDMUE1OjFGQjk0OjFEOTk0NDoyQzE5NTM6NUNCODdFMjQiLCJ0aW1lc3RhbXAiOjE1NTU1OTQ3OTEsImhvc3QiOiJnaXRodWIuY29tIn0=">

    <meta name="enabled-features" content="UNIVERSE_BANNER,MARKETPLACE_INVOICED_BILLING,MARKETPLACE_ENTERPRISE_CONTACTS,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_RECOMMENDATIONS,NOTIFY_ON_BLOCK,RELATED_ISSUES">

  <meta name="html-safe-nonce" content="f2aa177d3304d4abd9f30ff5c7aa38ba935da1e9">

  <meta http-equiv="x-pjax-version" content="1223b38dd2a06fa9c0439d9aa3018058">


      <link href="https://github.com/sourcegraph/sourcegraph/commits/81008f4f999e8aa4d7c47746ee4421334f304af9.atom" rel="alternate" title="Recent Commits to sourcegraph:81008f4f999e8aa4d7c47746ee4421334f304af9" type="application/atom+xml">

  <meta name="go-import" content="github.com/sourcegraph/sourcegraph git https://github.com/sourcegraph/sourcegraph.git">

  <meta name="octolytics-dimension-user_id" content="3979584" /><meta name="octolytics-dimension-user_login" content="sourcegraph" /><meta name="octolytics-dimension-repository_id" content="41288708" /><meta name="octolytics-dimension-repository_nwo" content="sourcegraph/sourcegraph" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="41288708" /><meta name="octolytics-dimension-repository_network_root_nwo" content="sourcegraph/sourcegraph" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />




  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">

  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

  <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
  <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://github.githubassets.com/favicon.ico">

<meta name="theme-color" content="#1e2327">


  <meta name="u2f-enabled" content="true">


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-in env-production emoji-size-boost">


  <div class="position-relative js-header-wrapper ">
    <a href="#start-of-content" tabindex="1" class="p-3 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
    <div id="js-pjax-loader-bar" class="pjax-loader-bar"><div class="progress"></div></div>






          <header class="Header" role="banner">

    <div class="Header-item">
      <a class="Header-link" href="https://github.com/" data-hotkey="g d" aria-label="Homepage" data-ga-click="Header, go to dashboard, icon:logo">
  <svg class="octicon octicon-mark-github v-align-middle" height="32" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
</a>

    </div>


    <div class="Header-item Header-item--full">
        <div class="header-search mr-3 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
  role="combobox"
  aria-owns="jump-to-results"
  aria-label="Search or jump to"
  aria-haspopup="listbox"
  aria-expanded="false"
>
  <div class="position-relative">
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="41288708" data-scoped-search-url="/sourcegraph/sourcegraph/search" data-unscoped-search-url="/search" action="/sourcegraph/sourcegraph/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
      <label class="form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
        <input type="text"
          class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
          data-hotkey="s,/"
          name="q"
          value=""
          placeholder="Search or jump to…"
          data-unscoped-placeholder="Search or jump to…"
          data-scoped-placeholder="Search or jump to…"
          autocapitalize="off"
          aria-autocomplete="list"
          aria-controls="jump-to-results"
          aria-label="Search or jump to…"
          data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations#csrf-token=xi5FUWu6DRHttEFcHpCPoJ+o0EzN50RhCRDa3GaR9GDAXYCcxnorboRJtsvpc57TRGDm043hEGNGH10RJafw+g=="
          spellcheck="false"
          autocomplete="off"
          >
          <input type="hidden" class="js-site-search-type-field" name="type" >
            <img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">

            <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">

<ul class="d-none js-jump-to-suggestions-template-container">


<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>

</ul>

<ul class="d-none js-jump-to-no-results-template-container">
  <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
    <span class="text-gray">No suggested jump to results</span>
  </li>
</ul>

<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">


<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>



<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>


    <li class="d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion">
      <img src="https://github.githubassets.com/images/spinners/octocat-spinner-128.gif" alt="Octocat Spinner Icon" class="m-2" width="28">
    </li>
</ul>

            </div>
      </label>
</form>  </div>
</div>


      <nav class="d-flex" aria-label="Global">

  <a class="js-selected-navigation-item Header-link  mr-3" data-hotkey="g p" data-ga-click="Header, click, Nav menu - item:pulls context:user" aria-label="Pull requests you created" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls" href="/pulls">
    Pull requests
</a>
  <a class="js-selected-navigation-item Header-link  mr-3" data-hotkey="g i" data-ga-click="Header, click, Nav menu - item:issues context:user" aria-label="Issues you created" data-selected-links="/issues /issues/assigned /issues/mentioned /issues" href="/issues">
    Issues
</a>
    <a class="js-selected-navigation-item Header-link  mr-3" data-ga-click="Header, click, Nav menu - item:marketplace context:user" data-octo-click="marketplace_click" data-octo-dimensions="location:nav_bar" data-selected-links=" /marketplace" href="/marketplace">
      Marketplace
</a>

  <a class="js-selected-navigation-item Header-link  mr-3" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="/explore">
    Explore
</a>
</nav>

    </div>


    <div class="Header-item">

    <a aria-label="You have unread notifications" class="Header-link notification-indicator tooltipped tooltipped-s  js-socket-channel js-notification-indicator" data-hotkey="g n" data-ga-click="Header, go to notifications, icon:unread" data-channel="notification-changed:1741180" href="/notifications">
        <span class="mail-status unread"></span>
        <svg class="octicon octicon-bell" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 12v1H0v-1l.73-.58c.77-.77.81-2.55 1.19-4.42C2.69 3.23 6 2 6 2c0-.55.45-1 1-1s1 .45 1 1c0 0 3.39 1.23 4.16 5 .38 1.88.42 3.66 1.19 4.42l.66.58H14zm-7 4c1.11 0 2-.89 2-2H5c0 1.11.89 2 2 2z"/></svg>
</a>
    </div>


    <div class="Header-item position-relative">
      <details class="details-overlay details-reset">
  <summary class="Header-link"
      aria-label="Create new…"
      data-ga-click="Header, create new, icon:add">
    <svg class="octicon octicon-plus" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 9H7v5H5V9H0V7h5V2h2v5h5v2z"/></svg> <span class="dropdown-caret"></span>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw">

<a role="menuitem" class="dropdown-item" href="/new" data-ga-click="Header, create new repository">
  New repository
</a>

  <a role="menuitem" class="dropdown-item" href="/new/import" data-ga-click="Header, import a repository">
    Import repository
  </a>

<a role="menuitem" class="dropdown-item" href="https://gist.github.com/" data-ga-click="Header, create new gist">
  New gist
</a>

  <a role="menuitem" class="dropdown-item" href="/organizations/new" data-ga-click="Header, create new organization">
    New organization
  </a>


  <div role="none" class="dropdown-divider"></div>
  <div class="dropdown-header">
    <span title="sourcegraph/sourcegraph">This repository</span>
  </div>
    <a role="menuitem" class="dropdown-item" href="/sourcegraph/sourcegraph/issues/new/choose" data-ga-click="Header, create new issue" data-skip-pjax>
      New issue
    </a>


  </details-menu>
</details>

    </div>

    <div class="Header-item position-relative mr-0">

<details class="details-overlay details-reset">
  <summary class="Header-link"
    aria-label="View profile and more"
    data-ga-click="Header, show menu, icon:avatar">
    <img alt="@lguychard" class="avatar" src="https://avatars3.githubusercontent.com/u/1741180?s=40&amp;v=4" height="20" width="20">
    <span class="dropdown-caret"></span>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw mt-2" style="width: 180px">
    <div class="header-nav-current-user css-truncate"><a role="menuitem" class="no-underline user-profile-link px-3 pt-2 pb-2 mb-n2 mt-n1 d-block" href="/lguychard" data-ga-click="Header, go to profile, text:Signed in as">Signed in as <strong class="css-truncate-target">lguychard</strong></a></div>
    <div role="none" class="dropdown-divider"></div>

      <div class="pl-3 pr-5 f6 user-status-container js-user-status-context pb-1" data-url="/users/status?compact=1&amp;link_mentions=0&amp;truncate=1">

<div class="js-user-status-container user-status-compact" data-team-hovercards-enabled>
  <details class="js-user-status-details details-reset details-overlay details-overlay-dark">
    <summary class="btn-link no-underline js-toggle-user-status-edit toggle-user-status-edit width-full " aria-haspopup="dialog" role="menuitem" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:3979584,&quot;target&quot;:&quot;EDIT_USER_STATUS&quot;,&quot;user_id&quot;:1741180,&quot;client_id&quot;:&quot;1032549827.1548354440&quot;,&quot;originating_request_id&quot;:&quot;C1A5:1FB94:1D9944:2C1953:5CB87E24&quot;,&quot;originating_url&quot;:&quot;https://github.com/sourcegraph/sourcegraph/pull/3221&quot;,&quot;referrer&quot;:&quot;https://github.com/sourcegraph/sourcegraph/issues/3480&quot;}}" data-hydro-click-hmac="eb88faf71edca62003e09067ce7f957985a978ec96d449802a9ddf619a0bbbfe">
      <div class="f6 d-inline-block v-align-middle  user-status-emoji-only-header pl-0 circle lh-condensed user-status-header " style="max-width: 29px">
        <div class="user-status-emoji-container flex-shrink-0 mr-1">
          <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
        </div>
      </div>
      <div class="d-inline-block v-align-middle user-status-message-wrapper f6 lh-condensed ws-normal pt-1">
          <span class="link-gray">Set your status</span>
      </div>
</summary>    <details-dialog class="details-dialog rounded-1 anim-fade-in fast Box Box--overlay" role="dialog" tabindex="-1">
      <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="position-relative flex-auto js-user-status-form" action="/users/status?compact=1&amp;link_mentions=0&amp;truncate=1" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="9ToN8i6mqXWh2iggVf/oXCQu45eT/7lCvMipS+OIOJaXTQxILXBfEzYQfBKh8bG8fX5a+FMuTODD+Ul0Cs+LCw==" />
        <div class="Box-header bg-gray border-bottom p-3">
          <button class="Box-btn-octicon js-toggle-user-status-edit btn-octicon float-right" type="reset" aria-label="Close dialog" data-close-dialog>
            <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
          </button>
          <h3 class="Box-title f5 text-bold text-gray-dark">Edit status</h3>
        </div>
        <input type="hidden" name="emoji" class="js-user-status-emoji-field" value="">
        <input type="hidden" name="organization_id" class="js-user-status-org-id-field" value="">
        <div class="px-3 py-2 text-gray-dark">
          <div class="js-characters-remaining-container js-suggester-container position-relative mt-2">
            <div class="input-group d-table form-group my-0 js-user-status-form-group">
              <span class="input-group-button d-table-cell v-align-middle" style="width: 1%">
                <button type="button" aria-label="Choose an emoji" class="btn-outline btn js-toggle-user-status-emoji-picker btn-open-emoji-picker">
                  <span class="js-user-status-original-emoji" hidden></span>
                  <span class="js-user-status-custom-emoji"></span>
                  <span class="js-user-status-no-emoji-icon" >
                    <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
                  </span>
                </button>
              </span>
              <input type="text" autocomplete="off" data-maxlength="80" class="js-suggester-field d-table-cell width-full form-control js-user-status-message-field js-characters-remaining-field" placeholder="What's happening?" name="message" required value="" aria-label="What is your current status?">
              <div class="error">Could not update your status, please try again.</div>
            </div>
            <div class="suggester-container">
              <div class="suggester js-suggester js-navigation-container" data-url="/autocomplete/user-suggestions" data-no-org-url="/autocomplete/user-suggestions" data-org-url="/suggestions" hidden>
              </div>
            </div>
            <div style="margin-left: 53px" class="my-1 text-small label-characters-remaining js-characters-remaining" data-suffix="remaining" hidden>
              80 remaining
            </div>
          </div>
          <include-fragment class="js-user-status-emoji-picker" data-url="/users/status/emoji"></include-fragment>
          <div class="overflow-auto border-bottom ml-n3 mr-n3 px-3" style="max-height: 33vh">
            <div class="user-status-suggestions js-user-status-suggestions collapsed overflow-hidden">
              <h4 class="f6 text-normal my-3">Suggestions:</h4>
              <div class="mx-3 mt-2 clearfix">
                  <div class="float-left col-6">
                      <button type="button" value=":palm_tree:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1">
                        <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji">
                          <g-emoji alias="palm_tree" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f334.png">🌴</g-emoji>
                        </div>
                        <div class="d-flex flex-items-center no-underline js-predefined-user-status-message" style="border-left: 1px solid transparent">
                          On vacation
                        </div>
                      </button>
                      <button type="button" value=":face_with_thermometer:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1">
                        <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji">
                          <g-emoji alias="face_with_thermometer" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f912.png">🤒</g-emoji>
                        </div>
                        <div class="d-flex flex-items-center no-underline js-predefined-user-status-message" style="border-left: 1px solid transparent">
                          Out sick
                        </div>
                      </button>
                  </div>
                  <div class="float-left col-6">
                      <button type="button" value=":house:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1">
                        <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji">
                          <g-emoji alias="house" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png">🏠</g-emoji>
                        </div>
                        <div class="d-flex flex-items-center no-underline js-predefined-user-status-message" style="border-left: 1px solid transparent">
                          Working from home
                        </div>
                      </button>
                      <button type="button" value=":dart:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1">
                        <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji">
                          <g-emoji alias="dart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png">🎯</g-emoji>
                        </div>
                        <div class="d-flex flex-items-center no-underline js-predefined-user-status-message" style="border-left: 1px solid transparent">
                          Focusing
                        </div>
                      </button>
                  </div>
              </div>
            </div>
            <div class="user-status-limited-availability-container">
              <div class="form-checkbox my-0">
                <input type="checkbox" name="limited_availability" value="1" class="js-user-status-limited-availability-checkbox" data-default-message="I may be slow to respond." aria-describedby="limited-availability-help-text-truncate-true" id="limited-availability-truncate-true">
                <label class="d-block f5 text-gray-dark mb-1" for="limited-availability-truncate-true">
                  Busy
                </label>
                <p class="note" id="limited-availability-help-text-truncate-true">
                  When others mention you, assign you, or request your review,
                  GitHub will let them know that you have limited availability.
                </p>
              </div>
            </div>
          </div>


<div class="d-inline-block f5 mr-2 pt-3 pb-2" >
  <div class="d-inline-block mr-1">
    Clear status
  </div>

  <details class="js-user-status-expire-drop-down f6 dropdown details-reset details-overlay d-inline-block mr-2">
    <summary class="f5 btn-link link-gray-dark border px-2 py-1 rounded-1" aria-haspopup="true">
      <div class="js-user-status-expiration-interval-selected d-inline-block v-align-baseline">
        Never
      </div>
      <div class="dropdown-caret"></div>
    </summary>

    <ul class="dropdown-menu dropdown-menu-se pl-0 overflow-auto" style="width: 220px; max-height: 15.5em">
      <li>
        <button type="button" class="btn-link dropdown-item js-user-status-expire-button ws-normal" title="Never">
          <span class="d-inline-block text-bold mb-1">Never</span>
          <div class="f6 lh-condensed">Keep this status until you clear your status or edit your status.</div>
        </button>
      </li>
      <li class="dropdown-divider" role="none"></li>
        <li>
          <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 30 minutes" value="2019-04-18T16:09:51+02:00">
            in 30 minutes
          </button>
        </li>
        <li>
          <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 1 hour" value="2019-04-18T16:39:51+02:00">
            in 1 hour
          </button>
        </li>
        <li>
          <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 4 hours" value="2019-04-18T19:39:51+02:00">
            in 4 hours
          </button>
        </li>
        <li>
          <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="today" value="2019-04-18T23:59:59+02:00">
            today
          </button>
        </li>
        <li>
          <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="this week" value="2019-04-21T23:59:59+02:00">
            this week
          </button>
        </li>
    </ul>
  </details>
  <input class="js-user-status-expiration-date-input" type="hidden" name="expires_at" value="">
</div>

          <include-fragment class="js-user-status-org-picker" data-url="/users/status/organizations"></include-fragment>
        </div>
        <div class="d-flex flex-items-center flex-justify-between p-3 border-top">
          <button type="submit" disabled class="width-full btn btn-primary mr-2 js-user-status-submit">
            Set status
          </button>
          <button type="button" disabled class="width-full js-clear-user-status-button btn ml-2 ">
            Clear status
          </button>
        </div>
</form>    </details-dialog>
  </details>
</div>

      </div>
      <div role="none" class="dropdown-divider"></div>


    <a role="menuitem" class="dropdown-item" href="/lguychard" data-ga-click="Header, go to profile, text:your profile">Your profile</a>
    <a role="menuitem" class="dropdown-item" href="/lguychard?tab=repositories" data-ga-click="Header, go to repositories, text:your repositories">Your repositories</a>

    <a role="menuitem" class="dropdown-item" href="/lguychard?tab=projects" data-ga-click="Header, go to projects, text:your projects">Your projects</a>

    <a role="menuitem" class="dropdown-item" href="/lguychard?tab=stars" data-ga-click="Header, go to starred repos, text:your stars">Your stars</a>
      <a role="menuitem" class="dropdown-item" href="https://gist.github.com/" data-ga-click="Header, your gists, text:your gists">Your gists</a>

    <div role="none" class="dropdown-divider"></div>
    <a role="menuitem" class="dropdown-item" href="https://help.github.com" data-ga-click="Header, go to help, text:help">Help</a>
    <a role="menuitem" class="dropdown-item" href="/settings/profile" data-ga-click="Header, go to settings, icon:settings">Settings</a>
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="logout-form" action="/logout" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="/k/gQlew4QTA5EA4pGQyHUrfGZ88mfVb6sAn8fIUWNdGUfh+7141qMoVS+DZSDDD/ObcJZEsejP6xcUF7A3h6A==" />

      <button type="submit" class="dropdown-item dropdown-signout" data-ga-click="Header, sign out, icon:logout" role="menuitem">
        Sign out
      </button>
</form>  </details-menu>
</details>

    </div>

  </header>



  </div>

  <div id="start-of-content" class="show-on-focus"></div>


    <div id="js-flash-container">

</div>



  <div class="application-main " data-commit-hovercards-enabled>
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
    <main id="js-repo-pjax-container" data-pjax-container >

<!-- base sha1: &quot;7ce8d734442bb0d43557a3163ca8c3231db3b6c2&quot; -->
<!-- head sha1: &quot;81008f4f999e8aa4d7c47746ee4421334f304af9&quot; -->










  <div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav  ">
    <div class="repohead-details-container clearfix container">

      <ul class="pagehead-actions">



  <li>

    <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-remote="true" class="clearfix js-social-form js-social-container" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="1qdTfBawyeH8yWRP0yBUIB+XrxIjRZ4oC1IFChz/dxTygnsmgmvIFgmS6YIX34om2P0YRtVqn/WdZHS2QBMzhg==" />      <input type="hidden" name="repository_id" value="41288708">

      <details class="details-reset details-overlay select-menu float-left">
        <summary class="select-menu-button float-left btn btn-sm btn-with-count" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;WATCH_BUTTON&quot;,&quot;repository_id&quot;:41288708,&quot;client_id&quot;:&quot;1032549827.1548354440&quot;,&quot;originating_request_id&quot;:&quot;C1A5:1FB94:1D9944:2C1953:5CB87E24&quot;,&quot;originating_url&quot;:&quot;https://github.com/sourcegraph/sourcegraph/pull/3221&quot;,&quot;referrer&quot;:&quot;https://github.com/sourcegraph/sourcegraph/issues/3480&quot;,&quot;user_id&quot;:1741180}}" data-hydro-click-hmac="c48b70667c30be6f5712ce3967e1920382ed5be5b4410702449475d9f998e5fa" data-ga-click="Repository, click Watch settings, action:pull_requests#show">            <span data-menu-button>
                <svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                Unwatch
            </span>
</summary>        <details-menu
          class="select-menu-modal position-absolute mt-5"
          style="z-index: 99; ">
          <div class="select-menu-header">
            <span class="select-menu-title">Notifications</span>
          </div>
          <div class="select-menu-list">
            <button type="submit" name="do" value="included" class="select-menu-item width-full" aria-checked="false" role="menuitemradio">
              <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
              <div class="select-menu-item-text">
                <span class="select-menu-item-heading">Not watching</span>
                <span class="description">Be notified only when participating or @mentioned.</span>
                <span class="hidden-select-button-text" data-menu-button-contents>
                  <svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                  Watch
                </span>
              </div>
            </button>

            <button type="submit" name="do" value="release_only" class="select-menu-item width-full" aria-checked="false" role="menuitemradio">
              <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
              <div class="select-menu-item-text">
                <span class="select-menu-item-heading">Releases only</span>
                <span class="description">Be notified of new releases, and when participating or @mentioned.</span>
                <span class="hidden-select-button-text" data-menu-button-contents>
                  <svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                  Unwatch releases
                </span>
              </div>
            </button>

            <button type="submit" name="do" value="subscribed" class="select-menu-item width-full" aria-checked="true" role="menuitemradio">
              <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
              <div class="select-menu-item-text">
                <span class="select-menu-item-heading">Watching</span>
                <span class="description">Be notified of all conversations.</span>
                <span class="hidden-select-button-text" data-menu-button-contents>
                  <svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                  Unwatch
                </span>
              </div>
            </button>

            <button type="submit" name="do" value="ignore" class="select-menu-item width-full" aria-checked="false" role="menuitemradio">
              <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
              <div class="select-menu-item-text">
                <span class="select-menu-item-heading">Ignoring</span>
                <span class="description">Never be notified.</span>
                <span class="hidden-select-button-text" data-menu-button-contents>
                  <svg class="octicon octicon-mute v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z"/></svg>
                  Stop ignoring
                </span>
              </div>
            </button>

          </div>
        </details-menu>
      </details>
        <a class="social-count js-social-count"
          href="/sourcegraph/sourcegraph/watchers"
          aria-label="41 users are watching this repository">
          41
        </a>
</form>
  </li>

  <li>
      <div class="js-toggler-container js-social-container starring-container on">
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="starred js-social-form" action="/sourcegraph/sourcegraph/unstar" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="/18nM95DXShpyeUvYIywm2SIL39iRXs9GU/sLfEm6Dvd1tSUYqwUTWR7odOlDtgB+m8QrTKX+7uaDHDpu6uvzA==" />
      <input type="hidden" name="context" value="repository"></input>
      <button type="submit" class="btn btn-sm btn-with-count js-toggler-target" aria-label="Unstar this repository" title="Unstar sourcegraph/sourcegraph" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;UNSTAR_BUTTON&quot;,&quot;repository_id&quot;:41288708,&quot;client_id&quot;:&quot;1032549827.1548354440&quot;,&quot;originating_request_id&quot;:&quot;C1A5:1FB94:1D9944:2C1953:5CB87E24&quot;,&quot;originating_url&quot;:&quot;https://github.com/sourcegraph/sourcegraph/pull/3221&quot;,&quot;referrer&quot;:&quot;https://github.com/sourcegraph/sourcegraph/issues/3480&quot;,&quot;user_id&quot;:1741180}}" data-hydro-click-hmac="94af103fb41f79e965fd4f37db1fbcbd60e135f9d75a12556a8d9702a96ae6c0" data-ga-click="Repository, click unstar button, action:pull_requests#show; text:Unstar">        <svg class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
        Unstar
</button>        <a class="social-count js-social-count" href="/sourcegraph/sourcegraph/stargazers"
           aria-label="2011 users starred this repository">
          2,011
        </a>
</form>
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="unstarred js-social-form" action="/sourcegraph/sourcegraph/star" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="7wdydU71/pBC/Nkzfh6h8wc0doLWxogvrByk5zPRhXeTxj40a72XOHuIOe6MbpqfjUOadpGy1D3APkMANwHHVg==" />
      <input type="hidden" name="context" value="repository"></input>
      <button type="submit" class="btn btn-sm btn-with-count js-toggler-target" aria-label="Unstar this repository" title="Star sourcegraph/sourcegraph" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;STAR_BUTTON&quot;,&quot;repository_id&quot;:41288708,&quot;client_id&quot;:&quot;1032549827.1548354440&quot;,&quot;originating_request_id&quot;:&quot;C1A5:1FB94:1D9944:2C1953:5CB87E24&quot;,&quot;originating_url&quot;:&quot;https://github.com/sourcegraph/sourcegraph/pull/3221&quot;,&quot;referrer&quot;:&quot;https://github.com/sourcegraph/sourcegraph/issues/3480&quot;,&quot;user_id&quot;:1741180}}" data-hydro-click-hmac="2138d6941b45ccd19693708e2e44e4ff8a23a33fb9a80fc9c6142d41c2944f1a" data-ga-click="Repository, click star button, action:pull_requests#show; text:Star">        <svg class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
        Star
</button>        <a class="social-count js-social-count" href="/sourcegraph/sourcegraph/stargazers"
           aria-label="2011 users starred this repository">
          2,011
        </a>
</form>  </div>

  </li>

  <li>
          <details class="details-reset details-overlay details-overlay-dark d-inline-block float-left">
            <summary class="btn btn-sm btn-with-count" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;FORK_BUTTON&quot;,&quot;repository_id&quot;:41288708,&quot;client_id&quot;:&quot;1032549827.1548354440&quot;,&quot;originating_request_id&quot;:&quot;C1A5:1FB94:1D9944:2C1953:5CB87E24&quot;,&quot;originating_url&quot;:&quot;https://github.com/sourcegraph/sourcegraph/pull/3221&quot;,&quot;referrer&quot;:&quot;https://github.com/sourcegraph/sourcegraph/issues/3480&quot;,&quot;user_id&quot;:1741180}}" data-hydro-click-hmac="236f7fb2d7f8e5bbefda844bdd3feeb40edd090c088f961bc4d441b57377ac13" data-ga-click="Repository, show fork modal, action:pull_requests#show; text:Fork" title="Fork your own copy of sourcegraph/sourcegraph to your account">              <svg class="octicon octicon-repo-forked v-align-text-bottom" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
              Fork
</summary>            <details-dialog
              class="anim-fade-in fast Box Box--overlay d-flex flex-column"
              src="/sourcegraph/sourcegraph/fork?fragment=1"
              preload>
              <div class="Box-header">
                <button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
                  <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
                </button>
                <h3 class="Box-title">Fork sourcegraph</h3>
              </div>
              <div class="overflow-auto text-center">
                <include-fragment>
                  <div class="octocat-spinner my-3" aria-label="Loading..."></div>
                  <p class="f5 text-gray">If this dialog fails to load, you can visit <a href="/sourcegraph/sourcegraph/fork">the fork page</a> directly.</p>
                </include-fragment>
              </div>
            </details-dialog>
          </details>

    <a href="/sourcegraph/sourcegraph/network/members" class="social-count"
       aria-label="131 users forked this repository">
      131
    </a>
  </li>
</ul>

      <h1 class="public ">
  <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
  <span class="author" itemprop="author"><a class="url fn" rel="author" data-hovercard-type="organization" data-hovercard-url="/orgs/sourcegraph/hovercard" href="/sourcegraph">sourcegraph</a></span><!--
--><span class="path-divider">/</span><!--
--><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/sourcegraph/sourcegraph">sourcegraph</a></strong>


</h1>

    </div>

<nav class="reponav js-repo-nav js-sidenav-container-pjax container"
     itemscope
     itemtype="http://schema.org/BreadcrumbList"
    aria-label="Repository"
     data-pjax="#js-repo-pjax-container">

  <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
    <a class="js-selected-navigation-item reponav-item" itemprop="url" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /sourcegraph/sourcegraph" href="/sourcegraph/sourcegraph">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
      <span itemprop="name">Code</span>
      <meta itemprop="position" content="1">
</a>  </span>

    <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
      <a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /sourcegraph/sourcegraph/issues" href="/sourcegraph/sourcegraph/issues">
        <svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg>
        <span itemprop="name">Issues</span>
        <span class="Counter">667</span>
        <meta itemprop="position" content="2">
</a>    </span>

  <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
    <a data-hotkey="g p" itemprop="url" class="js-selected-navigation-item selected reponav-item" aria-current="page" data-selected-links="repo_pulls checks /sourcegraph/sourcegraph/pulls" href="/sourcegraph/sourcegraph/pulls">
      <svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
      <span itemprop="name">Pull requests</span>
      <span class="Counter">83</span>
      <meta itemprop="position" content="3">
</a>  </span>


    <a data-hotkey="g w" data-skip-pjax="true" class="js-selected-navigation-item reponav-item" data-selected-links="repo_actions /sourcegraph/sourcegraph/actions" href="/sourcegraph/sourcegraph/actions">
      <svg class="octicon octicon-play" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 8A7 7 0 1 1 0 8a7 7 0 0 1 14 0zm-8.223 3.482l4.599-3.066a.5.5 0 0 0 0-.832L5.777 4.518A.5.5 0 0 0 5 4.934v6.132a.5.5 0 0 0 .777.416z"/></svg>
      Actions
</a>
    <a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /sourcegraph/sourcegraph/projects" href="/sourcegraph/sourcegraph/projects">
      <svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
      Projects
      <span class="Counter" >0</span>
</a>


    <a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse people alerts /sourcegraph/sourcegraph/pulse" href="/sourcegraph/sourcegraph/pulse">
      <svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg>
      Insights
</a>
    <a class="js-selected-navigation-item reponav-item" data-selected-links="repo_settings repo_branch_settings hooks integration_installations repo_keys_settings issue_template_editor /sourcegraph/sourcegraph/settings" href="/sourcegraph/sourcegraph/settings">
      <svg class="octicon octicon-gear" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
      Settings
</a>
</nav>


  </div>
<div class="container new-discussion-timeline experiment-repo-nav  ">
  <div class="repository-content ">



  <div class="js-check-all-container" data-pjax>




  <div class="clearfix js-issues-results">

  <div
    id="partial-discussion-header"
    class="gh-header js-details-container Details js-socket-channel js-updatable-content pull request js-pull-header-details"
    data-channel="pull_request:267437447"
    data-url="/sourcegraph/sourcegraph/pull/3221/show_partial?partial=pull_requests%2Ftitle&amp;sticky=true"
    data-pull-is-open="false"
    data-gid="MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3">
  <div class="gh-header-show ">
      <div class="gh-header-actions">
          <button type="button" class="btn btn-sm js-details-target" aria-expanded="false" aria-label="Edit Pull Request title" data-ga-click="Issues, edit issue, view:issue_show location:issue_header style:button logged_in:true">Edit</button>

      </div>

    <h1 class="gh-header-title">
      <span class="js-issue-title">
        make sourcegraph support redis password
      </span>
      <span class="gh-header-number">#3221</span>
    </h1>
  </div>

    <div class="gh-header-edit">
      <form class="js-issue-update js-comment" id="edit_header_429264796" action="/sourcegraph/sourcegraph/issues/3221" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="VpR6wwYPcpcJwSTuAEJ8oSvMVYebm8q5LwEWQesFbyODrs2KjyTjpQGccDo5i5zMoY7ge91bJE5kcorx0WFa1A==" />
        <input class="form-control edit-issue-title js-quick-submit" autofocus="autofocus" autocomplete="off" aria-label="Pull Request title" type="text" value="make sourcegraph support redis password" name="issue[title]" id="issue_title" />
        <button class="btn" type="submit" data-disable-with="Updating" data-ga-click="Issues, edit issue save, view:issue_show location:issue_header style:button logged_in:true">Save</button>
        <button class="btn-link js-details-target" type="button" aria-expanded="true" data-ga-click="Issues, edit issue cancel, view:issue_show location:issue_header style:button logged_in:true">Cancel</button>
</form>    </div>
  <div class="TableObject gh-header-meta">
    <div class="TableObject-item">
        <span class="State State--red  " title="Status: Closed">

  <svg height="16" class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg> Closed

</span>

    </div>
    <div class="TableObject-item TableObject-item--primary">
          <a class="author link-gray text-bold css-truncate css-truncate-target expandable" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>

  wants to merge
  <span class="js-updating-pull-request-commits-count">4</span>
  commits into



  <span title="sourcegraph/sourcegraph:master" class="commit-ref css-truncate user-select-contain expandable "><a title="sourcegraph/sourcegraph:master" class="no-underline" href="/sourcegraph/sourcegraph"><span class="css-truncate-target">sourcegraph</span>:<span class="css-truncate-target">master</span></a></span><span></span>

from

<span title="alexandnpu/sourcegraph:feature/make_redis_support_password" class="commit-ref css-truncate user-select-contain expandable head-ref"><a title="alexandnpu/sourcegraph:feature/make_redis_support_password" class="no-underline" href="/alexandnpu/sourcegraph/tree/feature/make_redis_support_password"><span class="css-truncate-target">alexandnpu</span>:<span class="css-truncate-target">feature/make_redis_support_password</span></a></span><span><clipboard-copy class="js-clipboard-copy zeroclipboard-link text-gray link-hover-blue" value="alexandnpu:feature/make_redis_support_password" aria-label="Copied!"><svg class="octicon octicon-clippy d-inline-block mx-1 js-clipboard-clippy-icon" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg><svg class="octicon octicon-check js-clipboard-check-icon mx-1 d-inline-block d-none text-green" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg></clipboard-copy></span>



    </div>
  </div>
    <div class="js-sticky js-sticky-offset-scroll top-0 gh-header-sticky" aria-hidden="true">
      <div class="sticky-content">
        <div class="d-flex flex-items-center flex-justify-between mt-2">
          <div class="d-flex flex-row flex-items-center">
            <div class="mr-2 flex-shrink-0">
                <span class="State State--red  " title="Status: Closed">

  <svg height="16" class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg> Closed

</span>

            </div>
            <div>
              <h1 class="text-bold f5">
  <a class="js-issue-title css-truncate css-truncate-target link-gray-dark" href="#" style="max-width: 48em">make sourcegraph support redis password</a>
  <span class="gh-header-number text-gray-light pr-1">#3221</span>
</h1>

              <div class="meta text-gray-light">
                    <a class="author link-gray text-bold css-truncate css-truncate-target expandable" data-hovercard-z-index-override="111" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>

  wants to merge
  <span class="js-updating-pull-request-commits-count">4</span>
  commits into



  <span title="sourcegraph/sourcegraph:master" class="commit-ref css-truncate user-select-contain expandable "><a title="sourcegraph/sourcegraph:master" class="no-underline" href="/sourcegraph/sourcegraph"><span class="css-truncate-target">sourcegraph</span>:<span class="css-truncate-target">master</span></a></span><span></span>

from

<span title="alexandnpu/sourcegraph:feature/make_redis_support_password" class="commit-ref css-truncate user-select-contain expandable head-ref"><a title="alexandnpu/sourcegraph:feature/make_redis_support_password" class="no-underline" href="/alexandnpu/sourcegraph/tree/feature/make_redis_support_password"><span class="css-truncate-target">alexandnpu</span>:<span class="css-truncate-target">feature/make_redis_support_password</span></a></span><span><clipboard-copy class="js-clipboard-copy zeroclipboard-link text-gray link-hover-blue" value="alexandnpu:feature/make_redis_support_password" aria-label="Copied!"><svg class="octicon octicon-clippy d-inline-block mx-1 js-clipboard-clippy-icon" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg><svg class="octicon octicon-check js-clipboard-check-icon mx-1 d-inline-block d-none text-green" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg></clipboard-copy></span>



              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="gh-header-shadow box-shadow"></div>
</div>



<div class="tabnav tabnav-pr">
    <div class="tabnav-extra float-right">
      <span class="diffstat" id="diffstat">
        <span class="text-green">
          +183
        </span>
        <span class="text-red">
          −2
        </span>
        <span class="tooltipped tooltipped-s" aria-label="185 lines changed">
          <span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-neutral"></span>
        </span>
      </span>
    </div>

  <nav class="tabnav-tabs">

      <a href="/sourcegraph/sourcegraph/pull/3221" class="tabnav-tab selected js-pjax-history-navigate">
        <svg class="octicon octicon-comment-discussion" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15 1H6c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v3l3-3h4c.55 0 1-.45 1-1V9h1l3 3V9h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM9 11H4.5L3 12.5V11H1V5h4v3c0 .55.45 1 1 1h3v2zm6-3h-2v1.5L11.5 8H6V2h9v6z"/></svg>
        Conversation

        <span id="conversation_tab_counter" class="Counter">
          6
        </span>
      </a>

    <a href="/sourcegraph/sourcegraph/pull/3221/commits" class="tabnav-tab  js-pjax-history-navigate">
      <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
      Commits

      <span id="commits_tab_counter" class="Counter js-updateable-pull-request-commits-count">
        4
      </span>
    </a>

      <a href="/sourcegraph/sourcegraph/pull/3221/checks" class="tabnav-tab " data-skip-pjax>
        <svg class="octicon octicon-checklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 8.5l-6 6-3-3L8.5 10l1.5 1.5L14.5 7 16 8.5zM5.7 12.2l.8.8H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h7c.55 0 1 .45 1 1v6.5l-.8-.8c-.39-.39-1.03-.39-1.42 0L5.7 10.8a.996.996 0 0 0 0 1.41v-.01zM4 4h5V3H4v1zm0 2h5V5H4v1zm0 2h3V7H4v1zM3 9H2v1h1V9zm0-2H2v1h1V7zm0-2H2v1h1V5zm0-2H2v1h1V3z"/></svg>
        Checks

        <span id="checks_tab_counter" class="Counter">
          0
        </span>
      </a>

      <link rel="pjax-prefetch" href="/sourcegraph/sourcegraph/pull/3221/files">
    <a href="/sourcegraph/sourcegraph/pull/3221/files" class="tabnav-tab  js-pjax-history-navigate">
      <svg class="octicon octicon-diff" viewBox="0 0 13 16" version="1.1" width="13" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 7h2v1H6v2H5V8H3V7h2V5h1v2zm-3 6h5v-1H3v1zM7.5 2L11 5.5V15c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h6.5zM10 6L7 3H1v12h9V6zM8.5 0H3v1h5l4 4v8h1V4.5L8.5 0z"/></svg>
      Files changed

        <span id="files_tab_counter" class="Counter">
            3
        </span>
    </a>
  </nav>
</div>



    <h2 class="sr-only">Conversation</h2>
    <div id="discussion_bucket"
          class="clearfix pull-request-tab-content is-visible js-socket-channel js-updatable-content"
          data-channel="pull_request:267437447:timeline">

<div class="discussion-sidebar">
  <div id="partial-discussion-sidebar"
  class="js-socket-channel js-updatable-content"
  data-channel="pull_request:267437447"
  data-gid="MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3"
  data-url="/sourcegraph/sourcegraph/issues/3221/show_partial?partial=issues%2Fsidebar"
  data-project-hovercards-enabled>

    <div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item position-relative" data-team-hovercards-enabled>
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Select reviewers" action="/sourcegraph/sourcegraph/pull/3221/review-requests?pr_global_id=MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="6bEWQsrc/d82F8TX4g2ygghoqVQchcMBjmbBCKf4S4SPzyvNhkeY/vDeWs+E8K8eSZcgAPt6KNaNbfAZf+zo/g==" />

  <details class="details-reset details-overlay select-menu js-select-menu js-dropdown-details js-load-contents "
    data-contents-url="/sourcegraph/sourcegraph/pull/3221/review-requests"
    data-multiple data-max-options=15>

    <summary class="text-bold discussion-sidebar-heading discussion-sidebar-toggle"
             aria-haspopup="menu"
             data-hotkey="q">
      <svg class="octicon octicon-gear" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
      Reviewers
    </summary>

    <div class="select-menu-modal js-navigation-container position-absolute right-0" style="z-index: 99; overflow: visible;">
      <div class="select-menu-header">
        <span class="select-menu-title">Request a review</span>
      </div>




<div class="select-menu-filters">
  <div class="select-menu-text-filter">
    <input type="text" id="review-filter-field" class="form-control js-filterable-field js-navigation-enable"
           placeholder="Filter people" aria-label="Type or choose a name" spellcheck="false" autocomplete="off">
  </div>
</div>

<div class="js-max-warning warning d-none">
  You can only select 15 reviewers.
</div>

<div class="select-menu-list">
  <div class="select-menu-no-results">Nothing to show</div>

  <div data-filterable-for="review-filter-field" data-filterable-type="substring-memory" data-filterable-limit="100" role="menu">

    <template>
      <div class="select-menu-item js-navigation-item" role="menuitem">
        <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>

        <input style="display:none"
               type="checkbox"
               value=""
               name="reviewer_user_ids[]">

        <div class="select-menu-item-gravatar">
          <img src="" alt="" size="20" class="avatar avatar-small mr-1 js-avatar">
        </div>

        <div class="select-menu-item-text lh-condensed">
          <span class="select-menu-item-heading">
            <span class="js-username"></span>
            <span class="description js-description"></span>
            <span class="description d-block ml-4 pl-1 pr-2 js-extended-description"></span>
          </span>
        </div>
      </div>
    </template>

    <div class="select-menu-divider d-none js-divider-suggestions">Suggestions</div>
    <div class="select-menu-divider d-none js-divider-rest">Everyone else</div>
  </div>
</div>



        <div class="select-menu-loading-overlay anim-pulse">
          <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
        </div>
    </div>
  </details>

    <span class="css-truncate">

        <p>

<span class="js-hovercard-left" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-assignee-name="beyang">
  <a class="no-underline" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">
    <img class="avatar" src="https://avatars3.githubusercontent.com/u/1646931?s=40&amp;v=4" width="20" height="20" alt="@beyang" />
</a>  <a class="assignee link-gray-dark" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">
    <span class="css-truncate-target">beyang</span>
</a></span>


          <a href="/sourcegraph/sourcegraph/pull/3221/files/cb632145276dd3e17f03e44b272b611b8107f725">
            <span class="reviewers-status-icon tooltipped tooltipped-nw float-right d-block text-center" aria-label="beyang left review comments">
              <svg class="octicon octicon-comment text-gray" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 1H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2v3.5L7.5 11H14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 9H7l-2 2v-2H2V2h12v8z"/></svg>
            </span>
          </a>


        </p>


</span>

</form></div>


  <div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Select assignees" action="/sourcegraph/sourcegraph/issues/3221/assignees" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="N8P6n804x0RbjPmdoCZXDKPw4qD+qF55vsfpo5FeDWPvimSHKFhstOMdXZBMg3wDR2hwreUYBmVMB5os3oqrCg==" />

  <details class="details-reset details-overlay select-menu js-select-menu js-dropdown-details js-load-contents "
    data-contents-url="/sourcegraph/sourcegraph/issues/3221/show_partial?partial=issues%2Fsidebar%2Fassignees_menu_content"
    data-multiple data-max-options=10>

    <summary class="text-bold discussion-sidebar-heading discussion-sidebar-toggle"
             aria-haspopup="menu"
             data-hotkey="a">
      <svg class="octicon octicon-gear" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
      Assignees
    </summary>

    <div class="select-menu-modal js-navigation-container position-absolute right-0" style="z-index: 99; overflow: visible;">
      <div class="select-menu-header">
        <span class="select-menu-title">Assign up to 10 people to this pull request</span>
      </div>




<div class="select-menu-filters">
  <div class="select-menu-text-filter">
    <input type="text" id="assignee-filter-field" class="form-control js-filterable-field js-navigation-enable"
           placeholder="Filter people" aria-label="Type or choose a name" spellcheck="false" autocomplete="off">
  </div>
</div>

<div class="js-max-warning warning d-none">
  You can only select 10 assignees.
</div>

<div class="select-menu-list">
    <button class="btn-block select-menu-clear-item select-menu-item js-navigation-item"
         type="button" aria-label="Clear assignee" data-clear-assignees>
      <svg class="octicon octicon-x select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
      <div class="select-menu-item-text">Clear assignees</div>
    </button>

  <div class="select-menu-no-results">Nothing to show</div>

  <input type="hidden" value="" name="issue[user_assignee_ids][]">

  <div data-filterable-for="assignee-filter-field" data-filterable-type="substring-memory" data-filterable-limit="100" role="menu">
      <input type="hidden" name="issue[user_assignee_ids][]" value="1646931">

    <template>
      <div class="select-menu-item js-navigation-item" role="menuitem">
        <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>

        <input style="display:none"
               type="checkbox"
               value=""
               name="issue[user_assignee_ids][]">

        <div class="select-menu-item-gravatar">
          <img src="" alt="" size="20" class="avatar avatar-small mr-1 js-avatar">
        </div>

        <div class="select-menu-item-text lh-condensed">
          <span class="select-menu-item-heading">
            <span class="js-username"></span>
            <span class="description js-description"></span>
          </span>
        </div>
      </div>
    </template>
  </div>
</div>



        <div class="select-menu-loading-overlay anim-pulse">
          <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
        </div>
    </div>
  </details>

    <span class="css-truncate js-issue-assignees">
      <p>

<span class="js-hovercard-left" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-assignee-name="beyang">
  <a class="no-underline" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">
    <img class="avatar" src="https://avatars3.githubusercontent.com/u/1646931?s=40&amp;v=4" width="20" height="20" alt="@beyang" />
</a>  <a class="assignee link-gray-dark" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">
    <span class="css-truncate-target">beyang</span>
</a></span>
      </p>
</span>

</form></div>

    <div class="discussion-sidebar-item sidebar-labels js-discussion-sidebar-item">



  <details class="details-reset details-overlay select-menu js-select-menu js-dropdown-details js-load-contents label-select-menu"
    data-contents-url="/sourcegraph/sourcegraph/issues/3221/show_partial?partial=issues%2Fsidebar%2Flabels_menu_content"
    data-multiple>

    <summary class="text-bold discussion-sidebar-heading discussion-sidebar-toggle"
             aria-haspopup="menu"
             data-hotkey="l">
      <svg class="octicon octicon-gear" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
      Labels
    </summary>

    <div class="select-menu-modal js-navigation-container position-absolute right-0" style="z-index: 99; overflow: visible;">
      <div class="select-menu-header">
        <span class="select-menu-title">Apply labels to this pull request</span>
      </div>
        <div class="select-menu-filters">
    <div class="select-menu-text-filter">
      <input type="text" id="label-filter-field" class="form-control js-label-filter-field js-filterable-field js-navigation-enable"
             placeholder="Filter labels" aria-label="Filter labels" autocomplete="off">
    </div>
  </div>

        <div class="js-select-menu-deferred-content js-updatable-content js-issue-labels-menu-content" data-url="/sourcegraph/sourcegraph/issues/3221/show_partial?partial=issues%2Fsidebar%2Flabels_menu_content">

        </div>
        <div class="select-menu-loading-overlay anim-pulse">
          <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
        </div>
    </div>
  </details>

  <div class="labels css-truncate js-issue-labels">
    None yet
</div>

</div>

    <div class="discussion-sidebar-item js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Select projects" action="/sourcegraph/sourcegraph/projects/issues/3221" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="IetfYplTDR4jhvwcCyyi4t7ghp088IHxAetMEHJCZimHPVKmN/Laelvw/p32i0nVT28UBQne9BkCSSG6p/7sOA==" />

  <details class="details-reset details-overlay select-menu js-select-menu js-dropdown-details js-load-contents "
    data-contents-url="/sourcegraph/sourcegraph/issues/3221/show_partial?partial=issues%2Fsidebar%2Fprojects_menu_content"
    data-multiple>

    <summary class="text-bold discussion-sidebar-heading discussion-sidebar-toggle"
             aria-haspopup="menu"
             data-hotkey="p">
      <svg class="octicon octicon-gear" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
      Projects
    </summary>

    <div class="select-menu-modal js-navigation-container position-absolute right-0" style="z-index: 99; overflow: visible;">
      <div class="select-menu-header">
        <span class="select-menu-title">Projects</span>
      </div>

        <div class="js-select-menu-deferred-content " data-url="/sourcegraph/sourcegraph/issues/3221/show_partial?partial=issues%2Fsidebar%2Fprojects_menu_content">

        </div>
        <div class="select-menu-loading-overlay anim-pulse">
          <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
        </div>
    </div>
  </details>


<span class="css-truncate sidebar-projects">
    None yet
</span>

</form></div>

    <div class="discussion-sidebar-item sidebar-milestone js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-issue-sidebar-form" aria-label="Select milestones" action="/sourcegraph/sourcegraph/issues/3221/set_milestone?partial=issues%2Fsidebar%2Fshow%2Fmilestone" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="wn8zqrBQXA/PPU8VoTH/EGjJh4/Vxqhs8SGVN2ueBm8t7ui/elBPwqQehWpJu6ow8hledn7GS+qCtJrUMExICQ==" />

  <details class="details-reset details-overlay select-menu js-select-menu js-dropdown-details js-load-contents "
    data-contents-url="/sourcegraph/sourcegraph/issues/3221/show_partial?partial=issues%2Fsidebar%2Fmilestone_menu_content"
    >

    <summary class="text-bold discussion-sidebar-heading discussion-sidebar-toggle"
             aria-haspopup="menu"
             data-hotkey="m">
      <svg class="octicon octicon-gear" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
      Milestone
    </summary>

    <div class="select-menu-modal js-navigation-container position-absolute right-0" style="z-index: 99; overflow: visible;">
      <div class="select-menu-header">
        <span class="select-menu-title">Set milestone</span>
      </div>

        <div class="js-select-menu-deferred-content " data-url="/sourcegraph/sourcegraph/issues/3221/show_partial?partial=issues%2Fsidebar%2Fmilestone_menu_content">

        </div>
        <div class="select-menu-loading-overlay anim-pulse">
          <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
        </div>
    </div>
  </details>

      <span class="progress-bar progress-bar-small"><span class="progress" style="width: 11.29032258064516%">&nbsp;</span></span>
  <a title="3.4" href="/sourcegraph/sourcegraph/milestone/21" class="milestone-name css-truncate">
    <strong class="css-truncate-target">3.4</strong>
  </a>

</form></div>

    <div class="discussion-sidebar-item sidebar-notifications">
    <div class="discussion-sidebar-heading text-bold">Notifications</div>
    <div class="thread-subscription-status js-socket-channel js-updatable-content"
  data-replace-remote-form-target
  data-channel="thread-subscription:429264796:1741180"
  data-url="/notifications/thread_subscription?repository_id=41288708&amp;thread_class=Issue&amp;thread_id=429264796">

  <svg height="32" class="octicon octicon-radio-tower" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M4.79 6.11c.25-.25.25-.67 0-.92-.32-.33-.48-.76-.48-1.19 0-.43.16-.86.48-1.19.25-.26.25-.67 0-.92a.613.613 0 0 0-.45-.19c-.16 0-.33.06-.45.19-.57.58-.85 1.35-.85 2.11 0 .76.29 1.53.85 2.11.25.25.66.25.9 0zM2.33.52a.651.651 0 0 0-.92 0C.48 1.48.01 2.74.01 3.99c0 1.26.47 2.52 1.4 3.48.25.26.66.26.91 0s.25-.68 0-.94c-.68-.7-1.02-1.62-1.02-2.54 0-.92.34-1.84 1.02-2.54a.66.66 0 0 0 .01-.93zm5.69 5.1A1.62 1.62 0 1 0 6.4 4c-.01.89.72 1.62 1.62 1.62zM14.59.53a.628.628 0 0 0-.91 0c-.25.26-.25.68 0 .94.68.7 1.02 1.62 1.02 2.54 0 .92-.34 1.83-1.02 2.54-.25.26-.25.68 0 .94a.651.651 0 0 0 .92 0c.93-.96 1.4-2.22 1.4-3.48A5.048 5.048 0 0 0 14.59.53zM8.02 6.92c-.41 0-.83-.1-1.2-.3l-3.15 8.37h1.49l.86-1h4l.84 1h1.49L9.21 6.62c-.38.2-.78.3-1.19.3zm-.01.48L9.02 11h-2l.99-3.6zm-1.99 5.59l1-1h2l1 1h-4zm5.19-11.1c-.25.25-.25.67 0 .92.32.33.48.76.48 1.19 0 .43-.16.86-.48 1.19-.25.26-.25.67 0 .92a.63.63 0 0 0 .9 0c.57-.58.85-1.35.85-2.11 0-.76-.28-1.53-.85-2.11a.634.634 0 0 0-.9 0z"/></svg>

    <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-replace-remote-form="true" class="thread-subscribe-form" action="/notifications/thread" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="0wZ8I15rAFJhGHKDlNymWymftapjEMkwho7YIxmd79gn1ZXpGsii4IfRn9S/8VKGJNJGOupwS1MuztLyYiL5YQ==" />      <input type="hidden" name="repository_id" value="41288708">
      <input type="hidden" name="thread_id" value="429264796">
      <input type="hidden" name="thread_class" value="Issue">
      <input type="hidden" name="id" value="mute">

      <button class="btn btn-sm" type="submit" data-disable-with>
        <svg class="octicon octicon-mute" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z"/></svg>
        Unsubscribe
      </button>
</form>
  <p class="reason text-small text-gray">You’re receiving notifications because you’re watching this repository.</p>
</div>

  </div>

  <div id="partial-users-participants" class="discussion-sidebar-item">
  <div class="participation">

    <div class="discussion-sidebar-heading text-bold">
      2 participants
    </div>
    <div class="participation-avatars d-flex flex-wrap">
        <a class="participant-avatar" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">
          <img class="avatar" src="https://avatars0.githubusercontent.com/u/1999503?s=52&amp;v=4" width="26" height="26" alt="@alexandnpu" />
</a>        <a class="participant-avatar" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">
          <img class="avatar" src="https://avatars2.githubusercontent.com/u/1646931?s=52&amp;v=4" width="26" height="26" alt="@beyang" />
</a>    </div>
  </div>
</div>



  <div class="discussion-sidebar-item">
    <details class="details-reset details-overlay details-overlay-dark">
      <summary class="text-bold link-gray-dark lock-toggle-link" aria-haspopup="dialog">
        <svg class="octicon octicon-lock" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 13H3v-1h1v1zm8-6v7c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h1V4c0-2.2 1.8-4 4-4s4 1.8 4 4v2h1c.55 0 1 .45 1 1zM3.8 6h4.41V4c0-1.22-.98-2.2-2.2-2.2-1.22 0-2.2.98-2.2 2.2v2H3.8zM11 7H2v7h9V7zM4 8H3v1h1V8zm0 2H3v1h1v-1z"/></svg>
        <strong>Lock conversation</strong>
      </summary>
      <details-dialog class="anim-fade-in fast Box Box--overlay text-gray-dark f5" aria-labelledby="lock-dialog-title">
        <!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/sourcegraph/sourcegraph/issues/3221/lock" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="EV+t8UcS55tDVDzzYGWDCIrEhY/kuMgRTslm0AoUaYOK5vGlTEyc2pk4Pjj/+E63BEcK5goKDZJFahuSJu2k5g==" />
          <div class="Box-header">
            <button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
              <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
            </button>
            <h3 id="lock-dialog-title" class="Box-title">
              Lock conversation on this pull request
            </h3>
          </div>
          <div class="Box-body">
            <ul class="ml-3">
                <li>Other users <strong>can’t add new comments</strong> to this pull request.</li>
                  <li>
                    You and other members of teams with
                    <a href="https://help.github.com/articles/what-are-the-different-access-permissions">write access</a>
                    to this repository <strong>can still leave comments</strong> that others can see.
                  </li>
              <li>You can always unlock this pull request again in the future.</li>
            </ul>

              <dl class="form-group mb-0">
                <dt>
                  <label for="unlock-reason">Reason for locking</label>
                </dt>
                <dd>
                <select name="reason" id="unlock-reason" aria-describedby="unlock-reason-note" class="form-select"><option value="">Choose a reason</option><option value="Off-topic">Off-topic</option>
<option value="Too heated">Too heated</option>
<option value="Resolved">Resolved</option>
<option value="Spam">Spam</option></select>
                  <p class="note" id="unlock-reason-note">
                    Optionally, choose a reason for locking that others can see. Learn more about when
                    it’s appropriate to <a href="https://help.github.com/articles/locking-conversations">lock conversations</a>.
                  </p>
                </dd>
              </dl>
          </div>
          <div class="Box-footer">
            <button type="submit" class="btn btn-block">
              Lock conversation on this pull request
            </button>
          </div>
</form>      </details-dialog>
    </details>
  </div>






</div>


<div class="border-top mt-3 py-3 text-gray text-small">
</div>


</div>

<div class="discussion-timeline pull-discussion-timeline js-pull-discussion-timeline js-quote-selection-container js-review-state-classes "
    data-quote-markdown=".js-comment-body" data-issue-and-pr-hovercards-enabled data-team-hovercards-enabled>
    <div class="js-discussion js-socket-channel" data-channel="marked-as-read:pull-request:267437447">


<div class="timeline-comment-wrapper js-comment-container mt-0 js-socket-channel"
  data-gid="MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3"
  data-url="/_render_node/MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3/pull_requests/body"
  data-channel="pull_request:267437447">



<div class="avatar-parent-child timeline-comment-avatar">
    <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu"><img class="avatar rounded-1" height="44" width="44" alt="@alexandnpu" src="https://avatars3.githubusercontent.com/u/1999503?s=88&amp;v=4" /></a>

</div>



<div class="timeline-comment-group js-minimizable-comment-group js-targetable-comment" id="issue-267437447">
  <div class="unminimized-comment editable-comment comment previewable-edit js-comment js-task-list-container timeline-comment reorderable-task-lists "
       data-body-version="cc42b4e3384ae91f02b330e1febc6a9c"
       data-unfurl-hide-url="/content_reference_attachments/hide"
       data-unfurl-authenticity-token="7Xm9+IkyExSM9yQg3MLeGzxv5juOQwQoaBE6H0abZVi+8jwDxzGfrvd3xGKgMUGejRa9qnqqPYaOq4uO2OLPIw==">


<div class="timeline-comment-header clearfix">
  <div class="timeline-comment-actions">

















  <details class="details-overlay details-reset position-relative d-inline-block js-socket-channel js-updatable-content js-reaction-popover-container js-comment-header-reaction-button"
      data-channel="reaction:pull-request:267437447"
      data-url="/_render_node/MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3/comments/comment_header_reaction_button">
    <summary class="btn-link timeline-comment-action" aria-label="Add your reaction">
      <svg class="octicon octicon-plus-small add-reaction-plus-icon" viewBox="0 0 7 16" version="1.1" width="7" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4H3v3H0v1h3v3h1V8h3V7H4V4z"/></svg>
      <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
    </summary>

<details-menu class="dropdown-menu dropdown-menu-sw add-reaction-popover js-add-reaction-popover anim-scale-in" aria-label="Pick your reaction">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="reaction-popover-form js-pick-reaction" action="/users/sourcegraph/reactions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="aZKUxxZzVitv4iXdiy7rzjp32dPB7OQ2nBq1Iq8lt7u21SY/d+DoYgHYPiCUEDcchpFHUD3Ee3p06i4T1ckA2g==" />
    <p class="text-gray mx-2 my-1">
      <span class="js-reaction-description">Pick your reaction</span>
      <img alt="" width="16" height="16" class="loading-spinner" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
    </p>

    <div role="none" class="dropdown-divider"></div>

    <div class="add-reactions-options mx-1 mb-1">
      <input type="hidden" name="input[subjectId]" value="MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3">

        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="+1"
          name="input[content]"
          aria-label="React with thumbs up emoji"
          value="THUMBS_UP react">
          <g-emoji alias="+1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" class="emoji">👍</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="-1"
          name="input[content]"
          aria-label="React with thumbs down emoji"
          value="THUMBS_DOWN react">
          <g-emoji alias="-1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png" class="emoji">👎</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Laugh"
          name="input[content]"
          aria-label="React with laugh emoji"
          value="LAUGH react">
          <g-emoji alias="smile" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" class="emoji">😄</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Hooray"
          name="input[content]"
          aria-label="React with hooray emoji"
          value="HOORAY react">
          <g-emoji alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png" class="emoji">🎉</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Confused"
          name="input[content]"
          aria-label="React with confused emoji"
          value="CONFUSED react">
          <g-emoji alias="thinking_face" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f615.png" class="emoji">😕</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Heart"
          name="input[content]"
          aria-label="React with heart emoji"
          value="HEART react">
          <g-emoji alias="heart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" class="emoji">❤️</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Rocket"
          name="input[content]"
          aria-label="React with rocket emoji"
          value="ROCKET react">
          <g-emoji alias="rocket" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f680.png" class="emoji">🚀</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Eyes"
          name="input[content]"
          aria-label="React with eyes emoji"
          value="EYES react">
          <g-emoji alias="eyes" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f440.png" class="emoji">👀</g-emoji>
        </button>
    </div>
</form></details-menu>

  </details>




<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="pullrequest-267437447-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221&amp;report=alexandnpu+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

  </div>







  <h3 class="timeline-comment-header-text f5 text-normal">


    <strong class="css-truncate">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>


    </strong>

    commented

      <a href="#issue-267437447" id="pullrequest-267437447-permalink" class="timestamp js-timestamp"><relative-time datetime="2019-04-04T12:58:53Z">Apr 4, 2019</relative-time></a>


    <span class="js-comment-edit-history">
    </span>
  </h3>
</div>


    <div class="edit-comment-hide">


<task-lists disabled sortable>
<table class="d-block">
  <tbody class="d-block">
    <tr class="d-block">
      <td class="d-block comment-body markdown-body  js-comment-body">


<p>Test plan: </p>
<p>sourcegraph should be able to support redis with authorization.</p>
<p>Note:<br>
I failed to setup my dev environment to test on my own mac, as the dev setup is not that easy enough for only the server side.<br>
Maybe this PR is an idea to show you that sourcegraph should be able to use password to connect redis. Because in my company, every redis server should use password to connect.</p>
      </td>
    </tr>
  </tbody>
</table>
</task-lists>




<div class="comment-reactions  js-reactions-container js-socket-channel js-updatable-content"

      data-channel="reaction:pull-request:267437447"
      data-url="/_render_node/MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3/comments/reactions"
    >
</div>




    </div>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="6ma/BrUCIHzfvhAo3YVv9uevJfKDcE4OhcpgzX4YyfowtJ2CpWpQ/YB0IqRRPS6GL8/e0/QQc2wadJMSRVhnRw==" class="js-comment-update" action="/sourcegraph/sourcegraph/issues/3221" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="bDqynw+TJ2zhaoACoRcAV5CMVjCxtbma6r7G5Tr32ii5AAXWhri2Xuk31NaY3uA6Gs7jzPd1V22hzVpVAJPv3w==" />
        <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="GQqKr/fH+fDokck03J1uHgK8mh77vL1Sr1EFYxdDJHKsM0GGzPVB67IG2qgNvlSv3gpvLmyq0QydJi16nsizoA==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="issue-267437447-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=pull_request" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="XwKyS0YMZbvKtL0bGDSJWzwoSQ/F3zzsQkiGyeHUY7eF0JDPVmQVOpV+j5eUjMgr9EiyLrK/AY7d9nUW2pTNCg=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="pull_request[id]" value="MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3">
  <input type="hidden" name="pull_request[bodyVersion]" class="js-body-version" value="cc42b4e3384ae91f02b330e1febc6a9c">
  <textarea name="pull_request[body]"
            id="issue-267437447-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >

&lt;!-- Reminder: Have you updated the changelog? --&gt;

Test plan: &lt;!-- Required: What is the test plan for this change? --&gt;

sourcegraph should be able to support redis with authorization.

Note:
I failed to setup my dev environment to test on my own mac, as the dev setup is not that easy enough for only the server side.
Maybe this PR is an idea to show you that sourcegraph should be able to use password to connect redis. Because in my company, every redis server should use password to connect.
</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="" class="js-original-line">
    <input type="hidden" name="path" value="" class="js-path">
    <input type="hidden" name="line" value="" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>  </div>
</div>

</div>




  <div id="js-timeline-progressive-loader" data-timeline-item-src="sourcegraph/sourcegraph/timeline?id=MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3&amp;variables%5Bafter%5D=Y3Vyc29yOnYyOpPPAAABai_xBfAAqTQ4NDQzOTA5OQ%3D%3D&amp;variables%5Bfirst%5D=60" ></div>




<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MjY3NDM3NDQ3OjRlYTQ2ZWUxZTBmMzMxOWFiOWE5YmFhMjQ0NDU1MzFmYmNiMmM5Njk=">


<div class="discussion-item discussion-commits" id="commits-pushed-4ea46ee">
    <h3 class="discussion-item-header f5 text-normal">
      <span class="discussion-item-icon">
        <svg class="octicon octicon-repo-push" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 3H3V2h1v1zM3 5h1V4H3v1zm4 0L4 9h2v7h2V9h2L7 5zm4-5H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9.02L11 10H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"/></svg>
      </span>

  <a class="author" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>

      added some commits
      <a href="#commits-pushed-4ea46ee" class="timestamp">
        <relative-time datetime="2019-04-04T12:54:51Z">Apr 4, 2019</relative-time>
      </a>
    </h3>
  <div class="discussion-item-body">
    <div class="timeline-commits ">


<div class="commit js-details-container Details js-socket-channel js-updatable-content no-wrap d-flex mb-2"
     data-channel="repo:41288708:commit:4ea46ee1e0f3319ab9a9baa24445531fbcb2c969"
     data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MjY3NDM3NDQ3OjRlYTQ2ZWUxZTBmMzMxOWFiOWE5YmFhMjQ0NDU1MzFmYmNiMmM5Njk=/commit/pull_condensed">

  <div class="commit-icon mr-3">
    <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
  </div>


<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="alexandnpu">
        <a class="avatar" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">
          <img height="20" width="20" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" />
</a>  </div>
</div>



  <div class="commit-message pr-1">
    <code>
      <a title="make sourcegraph support redis password" data-pjax="true" class="message" href="/sourcegraph/sourcegraph/pull/3221/commits/4ea46ee1e0f3319ab9a9baa24445531fbcb2c969">make sourcegraph support redis password</a>
    </code>


  </div>

  <div class="commit-sig-status text-right pr-1">


  </div>

  <div class="commit-ci-status pr-1">
  </div>

  <div class="commit-meta text-right">
    <code>
      <a href="/sourcegraph/sourcegraph/pull/3221/commits/4ea46ee1e0f3319ab9a9baa24445531fbcb2c969" class="commit-id">4ea46ee</a>
    </code>
  </div>
</div>




<div class="commit js-details-container Details js-socket-channel js-updatable-content no-wrap d-flex mb-2"
     data-channel="repo:41288708:commit:af9ce8bd17fc70b7cb7e2deffd68cf0b46b9f5da"
     data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MjY3NDM3NDQ3OmFmOWNlOGJkMTdmYzcwYjdjYjdlMmRlZmZkNjhjZjBiNDZiOWY1ZGE=/commit/pull_condensed">

  <div class="commit-icon mr-3">
    <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
  </div>


<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="alexandnpu">
        <a class="avatar" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">
          <img height="20" width="20" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" />
</a>  </div>
</div>



  <div class="commit-message pr-1">
    <code>
      <a title="make it also support the host:port format" data-pjax="true" class="message" href="/sourcegraph/sourcegraph/pull/3221/commits/af9ce8bd17fc70b7cb7e2deffd68cf0b46b9f5da">make it also support the host:port format</a>
    </code>


  </div>

  <div class="commit-sig-status text-right pr-1">


  </div>

  <div class="commit-ci-status pr-1">
  </div>

  <div class="commit-meta text-right">
    <code>
      <a href="/sourcegraph/sourcegraph/pull/3221/commits/af9ce8bd17fc70b7cb7e2deffd68cf0b46b9f5da" class="commit-id">af9ce8b</a>
    </code>
  </div>
</div>




<div class="commit js-details-container Details js-socket-channel js-updatable-content no-wrap d-flex mb-2"
     data-channel="repo:41288708:commit:cb632145276dd3e17f03e44b272b611b8107f725"
     data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MjY3NDM3NDQ3OmNiNjMyMTQ1Mjc2ZGQzZTE3ZjAzZTQ0YjI3MmI2MTFiODEwN2Y3MjU=/commit/pull_condensed">

  <div class="commit-icon mr-3">
    <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
  </div>


<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="alexandnpu">
        <a class="avatar" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">
          <img height="20" width="20" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" />
</a>  </div>
</div>



  <div class="commit-message pr-1">
    <code>
      <a title="one fix" data-pjax="true" class="message" href="/sourcegraph/sourcegraph/pull/3221/commits/cb632145276dd3e17f03e44b272b611b8107f725">one fix</a>
    </code>


  </div>

  <div class="commit-sig-status text-right pr-1">


  </div>

  <div class="commit-ci-status pr-1">
  </div>

  <div class="commit-meta text-right">
    <code>
      <a href="/sourcegraph/sourcegraph/pull/3221/commits/cb632145276dd3e17f03e44b272b611b8107f725" class="commit-id">cb63214</a>
    </code>
  </div>
</div>


    </div>
  </div>
</div>


</div>



<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDEzOkFzc2lnbmVkRXZlbnQyMjUzOTA2NTM2">

        <div class="discussion-item discussion-item-assigned" data-team-hovercards-enabled>
  <h3 class="discussion-item-header f5 text-normal" id="event-2253906536">

    <span class="discussion-item-icon">
      <svg class="octicon octicon-person" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 14.002a.998.998 0 0 1-.998.998H1.001A1 1 0 0 1 0 13.999V13c0-2.633 4-4 4-4s.229-.409 0-1c-.841-.62-.944-1.59-1-4 .173-2.413 1.867-3 3-3s2.827.586 3 3c-.056 2.41-.159 3.38-1 4-.229.59 0 1 0 1s4 1.367 4 4v1.002z"/></svg>
    </span>



        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar" height="16" width="16" alt="@beyang" src="https://avatars0.githubusercontent.com/u/1646931?s=60&amp;v=4" /></a>
  <a class="author text-inherit" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>





      self-assigned this


    <a href="#event-2253906536" class="timestamp"><relative-time datetime="2019-04-04T19:04:30Z">Apr 4, 2019</relative-time></a>

  </h3>
</div>




</div>



<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MjIzMDY0MzI0">



<div class="timeline-comment-wrapper discussion-item-review mt-0



            is-writer">


<div
  id="pullrequestreview-223064324"
  class="timeline-comment js-comment js-updatable-content js-socket-channel js-targetable-comment"
  data-gid="MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MjIzMDY0MzI0"
  data-channel="pull_request_review:223064324"
  data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MjIzMDY0MzI0/pull_request_reviews/body">


<div class="avatar-parent-child timeline-comment-avatar">
    <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar rounded-1" height="44" width="44" alt="@beyang" src="https://avatars1.githubusercontent.com/u/1646931?s=88&amp;v=4" /></a>

</div>

    <div class="discussion-item">
      <h3 class="discussion-item-header f5 text-normal">
          <div class="discussion-item-icon">
            <svg class="octicon octicon-eye" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
        </div>

        <div class="discussion-item-copy d-inline-block">
          <strong>


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>


          </strong>

            reviewed



          <span class="text-gray">
              <a href="#pullrequestreview-223064324" class="js-timestamp timestamp" id="pullrequestreview-223064324-permalink">
                <relative-time datetime="2019-04-05T00:58:40Z">Apr 5, 2019</relative-time>
              </a>
          </span>
        </div>

        <div class="float-right">


          <a class="btn btn-sm btn-outline" href="/sourcegraph/sourcegraph/pull/3221/files/cb632145276dd3e17f03e44b272b611b8107f725">
            View changes
          </a>
        </div>
      </div>
    </h3>


      <div class="pull-request-review-body-wrapper position-relative">

<div class="timeline-comment-group js-minimizable-comment-group js-targetable-comment" id="pullrequestreview-223064324-body-html">
  <div class="unminimized-comment editable-comment comment previewable-edit js-comment js-task-list-container timeline-comment reorderable-task-lists "
       data-body-version="9e99df3d671a9935c502278f2f6ea2bb"
       data-unfurl-hide-url="/content_reference_attachments/hide"
       data-unfurl-authenticity-token="MrO9lfUe/QOX0G4MDk972ow3XXA9Cy3lQWzi88nOAAthODxuux1xuexQjk5yvORfPU4G4cniFEun1lNiV7eqcA==">


<div class="timeline-comment-header clearfix">
  <div class="timeline-comment-actions">

















  <details class="details-overlay details-reset position-relative d-inline-block js-socket-channel js-updatable-content js-reaction-popover-container js-comment-header-reaction-button"
      data-channel="reaction:pull-request-review:223064324"
      data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MjIzMDY0MzI0/comments/comment_header_reaction_button">
    <summary class="btn-link timeline-comment-action" aria-label="Add your reaction">
      <svg class="octicon octicon-plus-small add-reaction-plus-icon" viewBox="0 0 7 16" version="1.1" width="7" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4H3v3H0v1h3v3h1V8h3V7H4V4z"/></svg>
      <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
    </summary>

<details-menu class="dropdown-menu dropdown-menu-sw add-reaction-popover js-add-reaction-popover anim-scale-in" aria-label="Pick your reaction">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="reaction-popover-form js-pick-reaction" action="/users/sourcegraph/reactions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="8e19BoJxquFkpneXPSLzBVhg4i7LhCtLvowD/Xb+mc8uqs/+4+IUqAqcbGoiHC/X5IZ8rTestAdWfJjMDBIurg==" />
    <p class="text-gray mx-2 my-1">
      <span class="js-reaction-description">Pick your reaction</span>
      <img alt="" width="16" height="16" class="loading-spinner" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
    </p>

    <div role="none" class="dropdown-divider"></div>

    <div class="add-reactions-options mx-1 mb-1">
      <input type="hidden" name="input[subjectId]" value="MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MjIzMDY0MzI0">

        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="+1"
          name="input[content]"
          aria-label="React with thumbs up emoji"
          value="THUMBS_UP react">
          <g-emoji alias="+1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" class="emoji">👍</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="-1"
          name="input[content]"
          aria-label="React with thumbs down emoji"
          value="THUMBS_DOWN react">
          <g-emoji alias="-1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png" class="emoji">👎</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Laugh"
          name="input[content]"
          aria-label="React with laugh emoji"
          value="LAUGH react">
          <g-emoji alias="smile" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" class="emoji">😄</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Hooray"
          name="input[content]"
          aria-label="React with hooray emoji"
          value="HOORAY react">
          <g-emoji alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png" class="emoji">🎉</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Confused"
          name="input[content]"
          aria-label="React with confused emoji"
          value="CONFUSED react">
          <g-emoji alias="thinking_face" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f615.png" class="emoji">😕</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Heart"
          name="input[content]"
          aria-label="React with heart emoji"
          value="HEART react">
          <g-emoji alias="heart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" class="emoji">❤️</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Rocket"
          name="input[content]"
          aria-label="React with rocket emoji"
          value="ROCKET react">
          <g-emoji alias="rocket" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f680.png" class="emoji">🚀</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Eyes"
          name="input[content]"
          aria-label="React with eyes emoji"
          value="EYES react">
          <g-emoji alias="eyes" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f440.png" class="emoji">👀</g-emoji>
        </button>
    </div>
</form></details-menu>

  </details>




<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="pullrequestreview-223064324-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23pullrequestreview-223064324&amp;report=beyang+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

  </div>


    <span class="timeline-comment-label text-bold tooltipped tooltipped-multiline tooltipped-s" aria-label="This user is a member of the Sourcegraph organization.">
      Member
    </span>





  <h3 class="timeline-comment-header-text f5 text-normal">


    <strong class="css-truncate">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>


    </strong>

    left a comment



    <span class="js-comment-edit-history">
    </span>
  </h3>
</div>


    <div class="edit-comment-hide">


<task-lists disabled sortable>
<table class="d-block">
  <tbody class="d-block">
    <tr class="d-block">
      <td class="d-block comment-body markdown-body  js-comment-body">

          <p>Thanks for submitting this! Have a quick inline comment now, but will do a more thorough review of this shortly.</p>
      </td>
    </tr>
  </tbody>
</table>
</task-lists>




<div class="comment-reactions  js-reactions-container js-socket-channel js-updatable-content"

      data-channel="reaction:pull-request-review:223064324"
      data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MjIzMDY0MzI0/comments/reactions"
    >
</div>


    </div>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="tmovwCrTB7yPmE6ngC6WUtPDyDCtMG8zDf9eB6xzrd1suA1EOrt3PdBSfCsMltciG6MzEdpQUlGSQa3YlzMDYA==" class="js-comment-update" action="/sourcegraph/sourcegraph/pull/3221/reviews/223064324/update" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="OaBcKhVoht5jF3g2ANpktf+leD4jvzEzrh9Cd5prBcIqRHG6ysbG5sAQe6+8bqbHT50Wgf+cduLqtTSfbzvalg==" />
        <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="0x1RuBdbMjMVsNps8NgjKlzXemPeDwTaElTEkIunPsJmJJqRLGmKKE8nyfAh+xmbgGGPU0kZaIQgI+yJAiypEA==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="pullrequestreview-223064324-body-html-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=none" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="ESziWt4DF9NTpUN1WIHXvPPqryZqYbioUEcCTXJlTl7L/sDezmtnUgxvcfnUOZbMO4pUBx0BhcrP+fGSSSXg4w=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="pull_request_review[id]" value="MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MjIzMDY0MzI0">
  <input type="hidden" name="pull_request_review[bodyVersion]" class="js-body-version" value="9e99df3d671a9935c502278f2f6ea2bb">
  <textarea name="pull_request_review[body]"
            id="pullrequestreview-223064324-body-html-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >Thanks for submitting this! Have a quick inline comment now, but will do a more thorough review of this shortly.</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="" class="js-original-line">
    <input type="hidden" name="path" value="" class="js-path">
    <input type="hidden" name="line" value="" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>  </div>
</div>

      </div>
  </div>



<div class="discussion-item-body">




<div class="file js-comment-container js-resolvable-timeline-thread-container">
  <div class="file-header">
        <a href="/sourcegraph/sourcegraph/pull/3221/files/cb632145276dd3e17f03e44b272b611b8107f725#diff-5bd3e793932782601ddbd53a3d8dd073" class="file-info link-gray-dark" title="pkg/redispool/redispool.go">
      pkg/redispool/redispool.go
    </a>

    <span title="Label: Outdated" class="Label Label--outline bg-yellow-light">Outdated</span>

  </div>


<div class="blob-wrapper border-bottom">
  <table id="discussion-diff-272416639" class="diff-table">



    <tr>

        <td class="blob-num blob-num-addition empty-cell"></td>

        <td id="discussion-diff-272416639R59" data-line-number="59"
            class="blob-num blob-num-addition js-linkable-line-number"></td>

      <td class="blob-code blob-code-addition">
        <span class="blob-code-inner blob-code-marker-addition">	}</span>

      </td>
    </tr>
    <tr>

        <td class="blob-num blob-num-addition empty-cell"></td>

        <td id="discussion-diff-272416639R60" data-line-number="60"
            class="blob-num blob-num-addition js-linkable-line-number"></td>

      <td class="blob-code blob-code-addition">
        <span class="blob-code-inner blob-code-marker-addition"><br></span>

      </td>
    </tr>
    <tr>

        <td class="blob-num blob-num-addition empty-cell"></td>

        <td id="discussion-diff-272416639R61" data-line-number="61"
            class="blob-num blob-num-addition js-linkable-line-number"></td>

      <td class="blob-code blob-code-addition">
        <span class="blob-code-inner blob-code-marker-addition">	<span class="pl-k">var</span> <span class="pl-smi">host</span> <span class="pl-k">string</span></span>

      </td>
    </tr>
    <tr>

        <td class="blob-num blob-num-addition empty-cell"></td>

        <td id="discussion-diff-272416639R62" data-line-number="62"
            class="blob-num blob-num-addition js-linkable-line-number"></td>

      <td class="blob-code blob-code-addition">
        <span class="blob-code-inner blob-code-marker-addition">	<span class="pl-k">if</span> <span class="pl-c1">len</span>(parsedUrl.<span class="pl-smi">Opaque</span>) &gt; <span class="pl-c1">0</span> {</span>

      </td>
    </tr>

  </table>
</div>

<div class="js-inline-comments-container">
  <div class="js-line-comments js-quote-selection-container" data-quote-markdown=".js-comment-body">
    <div class="js-comments-holder">


<div class="review-comment js-minimizable-comment-group js-targetable-comment"
      id="discussion_r272416639"
      data-gid="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ=="
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==/comments/review_comment">

    <div class="minimized-comment d-none">




  <details class="Details-element details-reset "
       data-body-version="d1773e368c1e4ab89003e7785857bb71">
    <summary class="text-gray f6">
      <div class="d-flex flex-justify-between flex-items-center">
        <h3 class="review-comment-contents bg-white f5 text-normal text-italic" style="margin-left:38px">
          <div class="discussion-item-icon discussion-item-icon-gray text-gray">
            <svg class="octicon octicon-fold" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"/></svg>
          </div>
          <div class="discussion-item-copy d-inline-block">
                This comment has been minimized.

          </div>
        </h3>
        <div class="Details-content--closed btn-link text-gray"><svg class="octicon octicon-unfold mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z"/></svg>Show comment</div>
        <div class="Details-content--open btn-link text-gray"><svg class="octicon octicon-fold mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"/></svg>Hide comment</div>
      </div>
    </summary>
    <div class="py-2 pl-6 pr-0">
      <div class="previewable-edit  js-task-list-container reorderable-task-lists">
        <div class="edit-comment-hide">
          <div class="timeline-comment-actions">



















<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="discussion_r272416639-minimized-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

            <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="inline-form js-comment-unminimize width-full" action="/sourcegraph/sourcegraph/community/unminimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="TaFFM11NyBTXeNUiQAKrwgSLILUhDyevKXHpb95L4aWKlpAyTNjptg6fOGghuJGGnI7oBLlv3e6A+rJHohszvw==" />
        <input type="hidden" name="comment_id" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==" >
        <button
          type="submit"
          class="dropdown-item btn-link"
          role="menuitem"
          aria-label="Unhide comment">
          Unhide
        </button>
</form>
          <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272416639" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="qd44CgYEiY0tqFdSf8mLt1fRFk3EmahqMg+kZNl31u+c9aUomXyae5eujJl4fq+GGlBBfPgnaAmzr4i1UAtQ0g==" />
      <input type="hidden" name="input[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">
      <button
        type="submit"
        class="dropdown-item menu-item-danger btn-link"
        aria-label="Delete comment"
        role="menuitem"
        data-confirm="Are you sure you want to delete this?">
        Delete
      </button>
</form>
        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23discussion_r272416639&amp;report=beyang+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

          </div>
            <a class="float-left mt-1" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar" height="28" width="28" alt="@beyang" src="https://avatars0.githubusercontent.com/u/1646931?s=60&amp;v=4" /></a>
          <div class="review-comment-contents">
            <h4 class="f5 text-normal d-inline text-gray-dark">
              <strong class="text-gray">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>


              </strong>
              <span class="text-gray">
                  <a href="#discussion_r272416639" id="discussion_r272416639-minimized-permalink" class="timestamp"><relative-time datetime="2019-04-05T00:58:40Z">Apr 5, 2019</relative-time></a>
              </span>
            </h4>

    <span class="timeline-comment-label text-bold tooltipped tooltipped-multiline tooltipped-s" aria-label="This user is a member of the Sourcegraph organization.">
      Member
    </span>


            <task-lists disabled sortable>
              <div class="comment-body markdown-body p-0 pt-1 js-comment-body ">
                  <p>Can you provide an example of a URL with an opaque component that would be used here? Haven't seen one used for connecting to Redis before, and adding that example to a unit test would be beneficial.</p>
              </div>
            </task-lists>
          </div>
        </div>

          <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="4k+JTvYfNbvK4avXUYOe+aoOWKJ3/O/CHAO0gldrdXM4navK5ndFOpUrmVvdO9+JYm6jgwCc0qCDvUddbCvbzg==" class="js-comment-update" data-type="json" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272416639" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="vpKh97CSiuYs4UiBSL0HvVcFt/QFxAYGo8FKxzR2lOx9dJidkLEDyQehNwlrosw09YFiIFXIx0tLLkB1dugqVQ==" />
            <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="BjFcRRK4nYsr9FAmdHG7PEdd6kQrdrkoZKys7PG51RWzCJdsKYolkHFjQ7qlUoGNm+sfdLxg1XZW24T1eDJCxw==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="discussion_r272416639-minimize-comment-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=none" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="5GQ2bvqZJpnBFLYvOqsHWxB6bctVKcPts2IGP5ehAt0+thTq6vFWGJ7ehKO2E0Yr2BqW6iJJ/o8s3PXgrOGsYA=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="discussion">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="pull_request_review_comment[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">
  <input type="hidden" name="pull_request_review_comment[bodyVersion]" class="js-body-version" value="d1773e368c1e4ab89003e7785857bb71">
  <textarea name="pull_request_review_comment[body]"
            id="discussion_r272416639-minimize-comment-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >Can you provide an example of a URL with an opaque component that would be used here? Haven&#39;t seen one used for connecting to Redis before, and adding that example to a unit test would be beneficial.</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="right">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="+	if len(parsedUrl.Opaque) &gt; 0 {" class="js-original-line">
    <input type="hidden" name="path" value="pkg/redispool/redispool.go" class="js-path">
    <input type="hidden" name="line" value="62" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>      </div>
    </div>
  </details>


    </div>

  <div class="previewable-edit js-suggested-changes-container js-task-list-container unminimized-comment js-comment  reorderable-task-lists"
       data-body-version="d1773e368c1e4ab89003e7785857bb71"
       data-thread-side="right">
    <div class="edit-comment-hide">
      <div class="timeline-comment-actions">

  <details class="details-overlay details-reset position-relative d-inline-block js-socket-channel js-updatable-content js-reaction-popover-container js-comment-header-reaction-button"
      data-channel="reaction:pull-request-review-comment:272416639"
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==/comments/comment_header_reaction_button">
    <summary class="btn-link timeline-comment-action" aria-label="Add your reaction">
      <svg class="octicon octicon-plus-small add-reaction-plus-icon" viewBox="0 0 7 16" version="1.1" width="7" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4H3v3H0v1h3v3h1V8h3V7H4V4z"/></svg>
      <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
    </summary>

<details-menu class="dropdown-menu dropdown-menu-sw add-reaction-popover js-add-reaction-popover anim-scale-in" aria-label="Pick your reaction">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="reaction-popover-form js-pick-reaction" action="/users/sourcegraph/reactions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="yVUrImxX1nx8axv9Oe9kZZwagBkA1lrQQuGvU2W7xNMWEpnaDcRoNRJRAAAm0bi3IPwemvz+xZyqETRiH1dzsg==" />
    <p class="text-gray mx-2 my-1">
      <span class="js-reaction-description">Pick your reaction</span>
      <img alt="" width="16" height="16" class="loading-spinner" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
    </p>

    <div role="none" class="dropdown-divider"></div>

    <div class="add-reactions-options mx-1 mb-1">
      <input type="hidden" name="input[subjectId]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">

        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="+1"
          name="input[content]"
          aria-label="React with thumbs up emoji"
          value="THUMBS_UP react">
          <g-emoji alias="+1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" class="emoji">👍</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="-1"
          name="input[content]"
          aria-label="React with thumbs down emoji"
          value="THUMBS_DOWN react">
          <g-emoji alias="-1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png" class="emoji">👎</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Laugh"
          name="input[content]"
          aria-label="React with laugh emoji"
          value="LAUGH react">
          <g-emoji alias="smile" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" class="emoji">😄</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Hooray"
          name="input[content]"
          aria-label="React with hooray emoji"
          value="HOORAY react">
          <g-emoji alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png" class="emoji">🎉</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Confused"
          name="input[content]"
          aria-label="React with confused emoji"
          value="CONFUSED react">
          <g-emoji alias="thinking_face" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f615.png" class="emoji">😕</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Heart"
          name="input[content]"
          aria-label="React with heart emoji"
          value="HEART react">
          <g-emoji alias="heart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" class="emoji">❤️</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Rocket"
          name="input[content]"
          aria-label="React with rocket emoji"
          value="ROCKET react">
          <g-emoji alias="rocket" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f680.png" class="emoji">🚀</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Eyes"
          name="input[content]"
          aria-label="React with eyes emoji"
          value="EYES react">
          <g-emoji alias="eyes" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f440.png" class="emoji">👀</g-emoji>
        </button>
    </div>
</form></details-menu>

  </details>

        <details class="details-overlay details-reset position-relative d-inline-block" id="details-discussion_r272416639">
          <summary class="btn-link timeline-comment-action" aria-label="Show more options">
            <svg class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
          </summary>

          <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px; z-index: 99;">

            <clipboard-copy
              class="dropdown-item btn-link"
              for="discussion_r272416639-permalink"
              data-toggle-for="details-discussion_r272416639"
              role="menuitem">
              Copy link
            </clipboard-copy>

            <button
              type="button"
              role="menuitem"
              class="dropdown-item btn-link d-none js-comment-quote-reply"
              data-toggle-for="details-discussion_r272416639">
              Quote reply
            </button>


<details
  class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark "
  >
  <summary
      class="dropdown-item"
      aria-haspopup="dialog"


        role="menuitem"

      >

    Reference in new issue
  </summary>
  <details-dialog
    aria-label="Reference in new issue"
    class="Box Box--overlay d-flex flex-column anim-fade-in fast "

    >
    <div class="Box-header">
      <button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
      </button>
      <h3 class="Box-title">Reference in new issue</h3>
    </div>

                <div class="Box-body scrollable-overlay">

<!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/comments/issues" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="yUbcmC4T+VsJBLmO+M0RKXhd6P/u1KfHoqKxTvEqyd15oL854tkQHkXFV6bC9vj+0kE4tWuhWmH1buAanw2XvA==" />
  <dl class="form-group">
    <dt><label for="convert-to-issue-repository-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">Repository</label></dt>
    <dd>
      <details class="details-reset details-overlay select-menu">
        <summary class="btn select-menu-button" data-menu-button>
          <input type="hidden" name="issue[repository_id]" value="41288708" checked>
          sourcegraph
        </summary>
        <details-menu class="select-menu-modal position-absolute" style="z-index: 99;" src="/sourcegraph/sourcegraph/related_repositories" preload>
          <div class="select-menu-header">
            <span class="select-menu-title">Repositories</span>
          </div>
          <div class="select-menu-filters">
            <div class="select-menu-text-filter">
              <filterable-input src="/sourcegraph/sourcegraph/related_repositories" aria-owns="related-repositories-menu">
                <input type="text" class="form-control" aria-label="Type to filter" placeholder="Find a repository" autofocus>
              </filterable-input>
            </div>
          </div>
          <include-fragment class="octocat-spinner my-6" aria-label="Loading"></include-fragment>
        </details-menu>
      </details>
    </dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-title-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">Title</label></dt>
    <dd><input id="convert-to-issue-title-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==" class="form-control" type="text" name="issue[title]" value="Can you provide an example of a URL with an opaque component that would be used here? Haven&#39;t seen one used for connecting to Redis before, and adding that example to a unit test would be beneficial." aria-label="Issue title" autofocus required></dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-body-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">Body</label></dt>
    <dd><textarea id="convert-to-issue-body-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==" name="issue[body]" class="form-control" aria-label="Issue body">Can you provide an example of a URL with an opaque component that would be used here? Haven&#39;t seen one used for connecting to Redis before, and adding that example to a unit test would be beneficial.

_Originally posted by @beyang in https://github.com/sourcegraph/sourcegraph/pull/3221_</textarea></dd>
  </dl>

  <div class="d-flex d-sm-block">
    <button type="submit" class="btn btn-primary" data-disable-with="Creating issue..." data-disable-invalid data-ga-click="Issues, create new issue, location:comment_menu logged_in:true">
      Create issue
    </button>
  </div>
</form>
                </div>

  </details-dialog>
</details>

              <div role="none" class="dropdown-divider"></div>

            <button
              type="button"
              role="menuitem"
              class="dropdown-item btn-link js-comment-edit-button"
              aria-label="Edit comment">
              Edit
            </button>


            <button
                type="button"
                role="menuitem"
                class="dropdown-item btn-link js-comment-hide-button"
                aria-label="Hide comment">
              Hide
            </button>

            <a aria-label="Report content" class="dropdown-item btn-link" role="menuitem" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23discussion_r272416639&amp;report=beyang+%28user%29">
              Report
</a>
            <div role="none" class="dropdown-divider"></div>
            <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272416639" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="zU7LrHQDc3L71rmeahsTpKWicgY9JmmWEvAHJ3QDmjf4ZVaO63tghEHQYlVtrDeV6CMlNwGYqfWTUCv2/X8cCg==" />
              <input type="hidden" name="input[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">
              <button
                  type="submit"
                  role="menuitem"
                  class="dropdown-item menu-item-danger btn-link"
                  aria-label="Delete comment"
                  data-confirm="Are you sure you want to delete this?">
                Delete
              </button>
</form>
          </details-menu>
        </details>
      </div>

      <span class="float-left mt-1">
        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar" height="28" width="28" alt="@beyang" src="https://avatars0.githubusercontent.com/u/1646931?s=60&amp;v=4" /></a>
      </span>

      <div class="review-comment-contents js-suggested-changes-contents" data-thread-side="right">
        <h4 class="f5 text-normal d-inline">
          <strong>
              <a class="author link-gray-dark" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>

          </strong>
          <span class="text-gray">

              <a href="#discussion_r272416639" id="discussion_r272416639-permalink" class="js-timestamp timestamp d-inline-block">
                <relative-time datetime="2019-04-05T00:58:40Z">Apr 5, 2019</relative-time>
              </a>

          </span>
        </h4>



    <span class="timeline-comment-label text-bold tooltipped tooltipped-multiline tooltipped-s" aria-label="This user is a member of the Sourcegraph organization.">
      Member
    </span>


          <div class="js-minimize-comment d-none">


<div class="flash flash-warn my-2">
  <button class="flash-close js-comment-hide-minimize-form" type="button"><svg aria-label="Cancel hiding comment" class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg></button>
  <h3 class="f5">Choose a reason for hiding this comment</h3>
  <p class="mb-3">The reason will be displayed to describe this comment to others. <a href="https://help.github.com/articles/managing-disruptive-comments/#hiding-a-comment">Learn more</a>.</p>
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-minimize" action="/sourcegraph/sourcegraph/community/minimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="rkITX8XKCV7O6mV3H8tkl8okyqRnAhUeFSBddyI0RC7SXi6nJQK6GOrpd7PRC3bHXpa0J9VnLceT6rfHxiDBDA==" />
    <input type="hidden" name="comment_id" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">
    <select name="classifier" class="form-select mr-2" aria-label="Reason" required>
      <option value>
      Choose a reason
      </option>
      <option value="SPAM">Spam</option>
<option value="ABUSE">Abuse</option>
<option value="OFF_TOPIC">Off Topic</option>
<option value="OUTDATED">Outdated</option>
<option value="RESOLVED">Resolved</option>
    </select>
    <button type="submit" class="btn">
      Hide comment
    </button>
</form></div>

          </div>



        <task-lists disabled sortable>
          <div class="comment-body markdown-body  js-comment-body">
            <p>Can you provide an example of a URL with an opaque component that would be used here? Haven't seen one used for connecting to Redis before, and adding that example to a unit test would be beneficial.</p>
          </div>
        </task-lists>

            <template class="js-suggested-changes-template" data-comment-pending="false" data-outdated-comment="true">
              <div class="p-2 border-top d-flex flex-justify-end flex-items-center suggested-change-form-container js-suggested-change-form-container" data-comment-pending="false" data-outdated-comment="true" data-resolved-comment="false">
                <button class="btn btn-sm js-suggestion-applied d-none" disabled>
                  <svg height="16" class="octicon octicon-check" viewBox="0 0 12 16" version="1.1" width="12" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
                  Suggestion applied
                </button>
                <button class="btn btn-sm js-disabled-apply-suggestion-button d-none tooltipped tooltipped-multiline tooltipped-n" data-pull-is-open="false" aria-label="" disabled>
                  Commit suggestion
                  <svg class="octicon octicon-triangle-down v-align-text-bottom" height="14" viewBox="0 0 12 16" version="1.1" width="10" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg>
                </button>

              </div>
            </template>

            <div class="form-group flex-auto warn m-0 text-orange js-error-message-placeholder" hidden>
              <div class="position-relative warning m-0" style="max-width: inherit;">
                <span class="js-error-message"></span>
                <span class="text-bold btn-link js-refresh-after-suggestion">Refresh and try again.</span>
              </div>
            </div>



<div class="comment-reactions  js-reactions-container js-socket-channel js-updatable-content"

      data-channel="reaction:pull-request-review-comment:272416639"
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==/comments/reactions"
    >
</div>

      </div>
    </div>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="lMyVAXR+TLql0Py6e4A14ZA0nA+99PZtQxXRAqe3+D5OHreFZBY8O/oazjb3OHSRWFRnLsqUyw/cqyLdnPdWgw==" class="js-comment-update" data-type="json" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272416639" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="BG8N9d/pP4Zcj6vLgVAlIAx4SgjWxoaXx/dBDx+DYQHHiTSf/8q2qXfP1EOiT+6prvyf3IbKR9ovGEu9XR3fuA==" />
        <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="YQEITa9srIKInh/+mkIngD76PWfjytZTX3syGqQ+MqTUOMNklF4UmdIJDGJLYR0x4kzIV3Tcug1tDBoDLbWldg==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="discussion_r272416639-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=none" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="iAK38fAGwrWG53YwOYSu0GuRluQSwFT2YanrDz8RFWdS0JV14G6yNNktRLy1PO+go/FtxWWgaZT+FxjQBFG72g=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="discussion">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="pull_request_review_comment[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MjQxNjYzOQ==">
  <input type="hidden" name="pull_request_review_comment[bodyVersion]" class="js-body-version" value="d1773e368c1e4ab89003e7785857bb71">
  <textarea name="pull_request_review_comment[body]"
            id="discussion_r272416639-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >Can you provide an example of a URL with an opaque component that would be used here? Haven&#39;t seen one used for connecting to Redis before, and adding that example to a unit test would be beneficial.</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="right">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="+	if len(parsedUrl.Opaque) &gt; 0 {" class="js-original-line">
    <input type="hidden" name="path" value="pkg/redispool/redispool.go" class="js-path">
    <input type="hidden" name="line" value="62" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>  </div>
</div>



<div class="review-comment js-minimizable-comment-group js-targetable-comment"
      id="discussion_r272796448"
      data-gid="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA=="
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==/comments/review_comment">

    <div class="minimized-comment d-none">




  <details class="Details-element details-reset "
       data-body-version="cb2c551d0d9dac9546de9ea2988f9bdd">
    <summary class="text-gray f6">
      <div class="d-flex flex-justify-between flex-items-center">
        <h3 class="review-comment-contents bg-white f5 text-normal text-italic" style="margin-left:38px">
          <div class="discussion-item-icon discussion-item-icon-gray text-gray">
            <svg class="octicon octicon-fold" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"/></svg>
          </div>
          <div class="discussion-item-copy d-inline-block">
                This comment has been minimized.

          </div>
        </h3>
        <div class="Details-content--closed btn-link text-gray"><svg class="octicon octicon-unfold mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z"/></svg>Show comment</div>
        <div class="Details-content--open btn-link text-gray"><svg class="octicon octicon-fold mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"/></svg>Hide comment</div>
      </div>
    </summary>
    <div class="py-2 pl-6 pr-0">
      <div class="previewable-edit  js-task-list-container reorderable-task-lists">
        <div class="edit-comment-hide">
          <div class="timeline-comment-actions">



















<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="discussion_r272796448-minimized-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

            <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="inline-form js-comment-unminimize width-full" action="/sourcegraph/sourcegraph/community/unminimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="r7gp7Iygv7M8KKVk4zhVt8FrDltwfk9KCVC93omZ/9loj/ztnTWeEeXPSC6Cgm/zWW7G6ugetQug2+b29cktww==" />
        <input type="hidden" name="comment_id" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==" >
        <button
          type="submit"
          class="dropdown-item btn-link"
          role="menuitem"
          aria-label="Unhide comment">
          Unhide
        </button>
</form>
          <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272796448" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="nPyt58xkBha8b88OI7DJlE7Gfn0KBAtFT3sxp1CTZNTZwb7Gb+HikyxA2cI/7x/2zSC101cgRCk3Mkovk0mmRQ==" />
      <input type="hidden" name="input[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">
      <button
        type="submit"
        class="dropdown-item menu-item-danger btn-link"
        aria-label="Delete comment"
        role="menuitem"
        data-confirm="Are you sure you want to delete this?">
        Delete
      </button>
</form>
        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23discussion_r272796448&amp;report=alexandnpu+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

          </div>
            <a class="float-left mt-1" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu"><img class="avatar" height="28" width="28" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" /></a>
          <div class="review-comment-contents">
            <h4 class="f5 text-normal d-inline text-gray-dark">
              <strong class="text-gray">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>


              </strong>
              <span class="text-gray">
                  <a href="#discussion_r272796448" id="discussion_r272796448-minimized-permalink" class="timestamp"><relative-time datetime="2019-04-06T13:53:50Z">Apr 6, 2019</relative-time></a>
              </span>
            </h4>


            <span
  class="timeline-comment-label tooltipped tooltipped-multiline tooltipped-s"
  aria-label="This user is the author of this pull request.">
  Author
</span>

            <task-lists disabled sortable>
              <div class="comment-body markdown-body p-0 pt-1 js-comment-body ">
                  <p>Maybe <code>Opaque</code> is not a very straight forward word to understand. That part of code is handling urls whose pattern is <code>host:port</code>, such as "localhost:5000" or so.</p>
<p>I do not like the way <code>Opaque</code> used here, but it is in the standard library net/url/url.go</p>
<pre><code>// A URL represents a parsed URL (technically, a URI reference).
//
// The general form represented is:
//
//	[scheme:][//[userinfo@]host][/]path[?query][#fragment]
//
// URLs that do not start with a slash after the scheme are interpreted as:
//
//	scheme:opaque[?query][#fragment]
//
// Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.
// A consequence is that it is impossible to tell which slashes in the Path were
// slashes in the raw URL and which were %2f. This distinction is rarely important,
// but when it is, code must not use Path directly.
// The Parse function sets both Path and RawPath in the URL it returns,
// and URL's String method uses RawPath if it is a valid encoding of Path,
// by calling the EscapedPath method.
type URL struct {
	Scheme     string
	Opaque     string    // encoded opaque data
	User       *Userinfo // username and password information
	Host       string    // host or host:port
	Path       string    // path (relative paths may omit leading slash)
	RawPath    string    // encoded path hint (see EscapedPath method)
	ForceQuery bool      // append a query ('?') even if RawQuery is empty
	RawQuery   string    // encoded query values, without '?'
	Fragment   string    // fragment for references, without '#'
}
</code></pre>
<p>any suggestions for making this part more elegant?</p>
              </div>
            </task-lists>
          </div>
        </div>

          <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="sIjvan3QH1HFt3vUcfVc+X3vKnZRt9OC0kvWpFD++F1qWs3ubbhv0Jp9SVj9TR2JtY/RVybX7uBN9SV7a75W4A==" class="js-comment-update" data-type="json" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272796448" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="Rzky7gpGcazPcQG33aUvpMwFfS8jdpckGy4XCu6hcYD7PaZ5FLtXoVtzGunQWbgW9+430jlDEao42jOid8M7rg==" />
            <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="/pwpLikp1oaJVQweR/LDvE8Hhz9+1y5BfuhJKkqt+dtLpeIHEhtundPCH4KW0fkNk7FyD+nBQh9Mn2EzwyZuCQ==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="discussion_r272796448-minimize-comment-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=none" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="L3k2irima7+05nbXBXMNFFnTyeS1GQY/JCLGP8qYbcr1qxQOqM4bPussRFuJy0xkkbMyxcJ5O127nDXg8djDdw=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="discussion">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="pull_request_review_comment[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">
  <input type="hidden" name="pull_request_review_comment[bodyVersion]" class="js-body-version" value="cb2c551d0d9dac9546de9ea2988f9bdd">
  <textarea name="pull_request_review_comment[body]"
            id="discussion_r272796448-minimize-comment-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >Maybe `Opaque` is not a very straight forward word to understand. That part of code is handling urls whose pattern is `host:port`, such as &quot;localhost:5000&quot; or so.

I do not like the way `Opaque` used here, but it is in the standard library net/url/url.go

```
// A URL represents a parsed URL (technically, a URI reference).
//
// The general form represented is:
//
//	[scheme:][//[userinfo@]host][/]path[?query][#fragment]
//
// URLs that do not start with a slash after the scheme are interpreted as:
//
//	scheme:opaque[?query][#fragment]
//
// Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.
// A consequence is that it is impossible to tell which slashes in the Path were
// slashes in the raw URL and which were %2f. This distinction is rarely important,
// but when it is, code must not use Path directly.
// The Parse function sets both Path and RawPath in the URL it returns,
// and URL&#39;s String method uses RawPath if it is a valid encoding of Path,
// by calling the EscapedPath method.
type URL struct {
	Scheme     string
	Opaque     string    // encoded opaque data
	User       *Userinfo // username and password information
	Host       string    // host or host:port
	Path       string    // path (relative paths may omit leading slash)
	RawPath    string    // encoded path hint (see EscapedPath method)
	ForceQuery bool      // append a query (&#39;?&#39;) even if RawQuery is empty
	RawQuery   string    // encoded query values, without &#39;?&#39;
	Fragment   string    // fragment for references, without &#39;#&#39;
}
```

any suggestions for making this part more elegant?</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="right">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="+	if len(parsedUrl.Opaque) &gt; 0 {" class="js-original-line">
    <input type="hidden" name="path" value="pkg/redispool/redispool.go" class="js-path">
    <input type="hidden" name="line" value="62" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>      </div>
    </div>
  </details>


    </div>

  <div class="previewable-edit js-suggested-changes-container js-task-list-container unminimized-comment js-comment  reorderable-task-lists"
       data-body-version="cb2c551d0d9dac9546de9ea2988f9bdd"
       data-thread-side="right">
    <div class="edit-comment-hide">
      <div class="timeline-comment-actions">

  <details class="details-overlay details-reset position-relative d-inline-block js-socket-channel js-updatable-content js-reaction-popover-container js-comment-header-reaction-button"
      data-channel="reaction:pull-request-review-comment:272796448"
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==/comments/comment_header_reaction_button">
    <summary class="btn-link timeline-comment-action" aria-label="Add your reaction">
      <svg class="octicon octicon-plus-small add-reaction-plus-icon" viewBox="0 0 7 16" version="1.1" width="7" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4H3v3H0v1h3v3h1V8h3V7H4V4z"/></svg>
      <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
    </summary>

<details-menu class="dropdown-menu dropdown-menu-sw add-reaction-popover js-add-reaction-popover anim-scale-in" aria-label="Pick your reaction">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="reaction-popover-form js-pick-reaction" action="/users/sourcegraph/reactions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="JhYNOELnx/gL357zGzKF2xhdd3m8bimgJQc6vrzf3nb5Ub/AI3R5sWXlhQ4EDFkJpLvp+kBGtuzN96GPxjNpFw==" />
    <p class="text-gray mx-2 my-1">
      <span class="js-reaction-description">Pick your reaction</span>
      <img alt="" width="16" height="16" class="loading-spinner" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
    </p>

    <div role="none" class="dropdown-divider"></div>

    <div class="add-reactions-options mx-1 mb-1">
      <input type="hidden" name="input[subjectId]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">

        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="+1"
          name="input[content]"
          aria-label="React with thumbs up emoji"
          value="THUMBS_UP react">
          <g-emoji alias="+1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" class="emoji">👍</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="-1"
          name="input[content]"
          aria-label="React with thumbs down emoji"
          value="THUMBS_DOWN react">
          <g-emoji alias="-1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png" class="emoji">👎</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Laugh"
          name="input[content]"
          aria-label="React with laugh emoji"
          value="LAUGH react">
          <g-emoji alias="smile" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" class="emoji">😄</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Hooray"
          name="input[content]"
          aria-label="React with hooray emoji"
          value="HOORAY react">
          <g-emoji alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png" class="emoji">🎉</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Confused"
          name="input[content]"
          aria-label="React with confused emoji"
          value="CONFUSED react">
          <g-emoji alias="thinking_face" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f615.png" class="emoji">😕</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Heart"
          name="input[content]"
          aria-label="React with heart emoji"
          value="HEART react">
          <g-emoji alias="heart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" class="emoji">❤️</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Rocket"
          name="input[content]"
          aria-label="React with rocket emoji"
          value="ROCKET react">
          <g-emoji alias="rocket" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f680.png" class="emoji">🚀</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Eyes"
          name="input[content]"
          aria-label="React with eyes emoji"
          value="EYES react">
          <g-emoji alias="eyes" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f440.png" class="emoji">👀</g-emoji>
        </button>
    </div>
</form></details-menu>

  </details>

        <details class="details-overlay details-reset position-relative d-inline-block" id="details-discussion_r272796448">
          <summary class="btn-link timeline-comment-action" aria-label="Show more options">
            <svg class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
          </summary>

          <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px; z-index: 99;">

            <clipboard-copy
              class="dropdown-item btn-link"
              for="discussion_r272796448-permalink"
              data-toggle-for="details-discussion_r272796448"
              role="menuitem">
              Copy link
            </clipboard-copy>

            <button
              type="button"
              role="menuitem"
              class="dropdown-item btn-link d-none js-comment-quote-reply"
              data-toggle-for="details-discussion_r272796448">
              Quote reply
            </button>


<details
  class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark "
  >
  <summary
      class="dropdown-item"
      aria-haspopup="dialog"


        role="menuitem"

      >

    Reference in new issue
  </summary>
  <details-dialog
    aria-label="Reference in new issue"
    class="Box Box--overlay d-flex flex-column anim-fade-in fast "

    >
    <div class="Box-header">
      <button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
      </button>
      <h3 class="Box-title">Reference in new issue</h3>
    </div>

                <div class="Box-body scrollable-overlay">

<!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/comments/issues" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="uThpVvXtDGIBL+nXTFgCz++ZifsRfTN6ESo51HbT9tIJ3gr3OSflJ03uB/92Y+sYRYVZsZQIztxG5miAGPSosw==" />
  <dl class="form-group">
    <dt><label for="convert-to-issue-repository-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">Repository</label></dt>
    <dd>
      <details class="details-reset details-overlay select-menu">
        <summary class="btn select-menu-button" data-menu-button>
          <input type="hidden" name="issue[repository_id]" value="41288708" checked>
          sourcegraph
        </summary>
        <details-menu class="select-menu-modal position-absolute" style="z-index: 99;" src="/sourcegraph/sourcegraph/related_repositories" preload>
          <div class="select-menu-header">
            <span class="select-menu-title">Repositories</span>
          </div>
          <div class="select-menu-filters">
            <div class="select-menu-text-filter">
              <filterable-input src="/sourcegraph/sourcegraph/related_repositories" aria-owns="related-repositories-menu">
                <input type="text" class="form-control" aria-label="Type to filter" placeholder="Find a repository" autofocus>
              </filterable-input>
            </div>
          </div>
          <include-fragment class="octocat-spinner my-6" aria-label="Loading"></include-fragment>
        </details-menu>
      </details>
    </dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-title-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">Title</label></dt>
    <dd><input id="convert-to-issue-title-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==" class="form-control" type="text" name="issue[title]" value="Maybe `Opaque` is not a very straight forward word to understand. That part of code is handling urls whose pattern is `host:port`, such as &quot;localhost:5000&quot; or so." aria-label="Issue title" autofocus required></dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-body-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">Body</label></dt>
    <dd><textarea id="convert-to-issue-body-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==" name="issue[body]" class="form-control" aria-label="Issue body">Maybe `Opaque` is not a very straight forward word to understand. That part of code is handling urls whose pattern is `host:port`, such as &quot;localhost:5000&quot; or so.

I do not like the way `Opaque` used here, but it is in the standard library net/url/url.go

```
// A URL represents a parsed URL (technically, a URI reference).
//
// The general form represented is:
//
//	[scheme:][//[userinfo@]host][/]path[?query][#fragment]
//
// URLs that do not start with a slash after the scheme are interpreted as:
//
//	scheme:opaque[?query][#fragment]
//
// Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.
// A consequence is that it is impossible to tell which slashes in the Path were
// slashes in the raw URL and which were %2f. This distinction is rarely important,
// but when it is, code must not use Path directly.
// The Parse function sets both Path and RawPath in the URL it returns,
// and URL&#39;s String method uses RawPath if it is a valid encoding of Path,
// by calling the EscapedPath method.
type URL struct {
	Scheme     string
	Opaque     string    // encoded opaque data
	User       *Userinfo // username and password information
	Host       string    // host or host:port
	Path       string    // path (relative paths may omit leading slash)
	RawPath    string    // encoded path hint (see EscapedPath method)
	ForceQuery bool      // append a query (&#39;?&#39;) even if RawQuery is empty
	RawQuery   string    // encoded query values, without &#39;?&#39;
	Fragment   string    // fragment for references, without &#39;#&#39;
}
```

any suggestions for making this part more elegant?

_Originally posted by @alexandnpu in https://github.com/sourcegraph/sourcegraph/pull/3221_</textarea></dd>
  </dl>

  <div class="d-flex d-sm-block">
    <button type="submit" class="btn btn-primary" data-disable-with="Creating issue..." data-disable-invalid data-ga-click="Issues, create new issue, location:comment_menu logged_in:true">
      Create issue
    </button>
  </div>
</form>
                </div>

  </details-dialog>
</details>

              <div role="none" class="dropdown-divider"></div>

            <button
              type="button"
              role="menuitem"
              class="dropdown-item btn-link js-comment-edit-button"
              aria-label="Edit comment">
              Edit
            </button>


            <button
                type="button"
                role="menuitem"
                class="dropdown-item btn-link js-comment-hide-button"
                aria-label="Hide comment">
              Hide
            </button>

            <a aria-label="Report content" class="dropdown-item btn-link" role="menuitem" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23discussion_r272796448&amp;report=alexandnpu+%28user%29">
              Report
</a>
            <div role="none" class="dropdown-divider"></div>
            <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272796448" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="hejDMKJTKQKT6VbR+IsRCQjjpqdl1eSJS3YroY18M4fA1dARAdbNhwPGQB3k1MdriwVtCTjxq+UzP1ApTqbxFg==" />
              <input type="hidden" name="input[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">
              <button
                  type="submit"
                  role="menuitem"
                  class="dropdown-item menu-item-danger btn-link"
                  aria-label="Delete comment"
                  data-confirm="Are you sure you want to delete this?">
                Delete
              </button>
</form>
          </details-menu>
        </details>
      </div>

      <span class="float-left mt-1">
        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu"><img class="avatar" height="28" width="28" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" /></a>
      </span>

      <div class="review-comment-contents js-suggested-changes-contents" data-thread-side="right">
        <h4 class="f5 text-normal d-inline">
          <strong>
              <a class="author link-gray-dark" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>

          </strong>
          <span class="text-gray">

              <a href="#discussion_r272796448" id="discussion_r272796448-permalink" class="js-timestamp timestamp d-inline-block">
                <relative-time datetime="2019-04-06T13:53:50Z">Apr 6, 2019</relative-time>
              </a>


  <span class="d-inline-block text-gray-light">&#8226;</span>

  <details class="details-overlay details-reset d-inline-block dropdown">
    <summary class="btn-link no-underline text-gray js-notice">
      <div class="position-relative">
        <span>
            edited
        </span>
        <svg height="11" class="octicon octicon-triangle-down v-align-middle" viewBox="0 0 12 16" version="1.1" width="8" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg>
      </div>
    </summary>
    <details-menu class="anim-scale-in dropdown-menu dropdown-menu-se py-0" style="width:352px" src="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==/comments/comment_edit_history_log" preload>
      <include-fragment class="octocat-spinner my-3" aria-label="Loading"></include-fragment>
    </details-menu>
  </details>

          </span>
        </h4>

        <span
  class="timeline-comment-label tooltipped tooltipped-multiline tooltipped-s"
  aria-label="This user is the author of this pull request.">
  Author
</span>




          <div class="js-minimize-comment d-none">


<div class="flash flash-warn my-2">
  <button class="flash-close js-comment-hide-minimize-form" type="button"><svg aria-label="Cancel hiding comment" class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg></button>
  <h3 class="f5">Choose a reason for hiding this comment</h3>
  <p class="mb-3">The reason will be displayed to describe this comment to others. <a href="https://help.github.com/articles/managing-disruptive-comments/#hiding-a-comment">Learn more</a>.</p>
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-minimize" action="/sourcegraph/sourcegraph/community/minimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="lbSdKJ8C1Wa9IHi1BYKYEQwCbppESulkBCvdMpVgtj7pqKDQf8pmIJkjanHLQopBmLAQGfYv0b2C4TeCcXQzHA==" />
    <input type="hidden" name="comment_id" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">
    <select name="classifier" class="form-select mr-2" aria-label="Reason" required>
      <option value>
      Choose a reason
      </option>
      <option value="SPAM">Spam</option>
<option value="ABUSE">Abuse</option>
<option value="OFF_TOPIC">Off Topic</option>
<option value="OUTDATED">Outdated</option>
<option value="RESOLVED">Resolved</option>
    </select>
    <button type="submit" class="btn">
      Hide comment
    </button>
</form></div>

          </div>



        <task-lists disabled sortable>
          <div class="comment-body markdown-body  js-comment-body">
            <p>Maybe <code>Opaque</code> is not a very straight forward word to understand. That part of code is handling urls whose pattern is <code>host:port</code>, such as "localhost:5000" or so.</p>
<p>I do not like the way <code>Opaque</code> used here, but it is in the standard library net/url/url.go</p>
<pre><code>// A URL represents a parsed URL (technically, a URI reference).
//
// The general form represented is:
//
//	[scheme:][//[userinfo@]host][/]path[?query][#fragment]
//
// URLs that do not start with a slash after the scheme are interpreted as:
//
//	scheme:opaque[?query][#fragment]
//
// Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.
// A consequence is that it is impossible to tell which slashes in the Path were
// slashes in the raw URL and which were %2f. This distinction is rarely important,
// but when it is, code must not use Path directly.
// The Parse function sets both Path and RawPath in the URL it returns,
// and URL's String method uses RawPath if it is a valid encoding of Path,
// by calling the EscapedPath method.
type URL struct {
	Scheme     string
	Opaque     string    // encoded opaque data
	User       *Userinfo // username and password information
	Host       string    // host or host:port
	Path       string    // path (relative paths may omit leading slash)
	RawPath    string    // encoded path hint (see EscapedPath method)
	ForceQuery bool      // append a query ('?') even if RawQuery is empty
	RawQuery   string    // encoded query values, without '?'
	Fragment   string    // fragment for references, without '#'
}
</code></pre>
<p>any suggestions for making this part more elegant?</p>
          </div>
        </task-lists>

            <template class="js-suggested-changes-template" data-comment-pending="false" data-outdated-comment="true">
              <div class="p-2 border-top d-flex flex-justify-end flex-items-center suggested-change-form-container js-suggested-change-form-container" data-comment-pending="false" data-outdated-comment="true" data-resolved-comment="false">
                <button class="btn btn-sm js-suggestion-applied d-none" disabled>
                  <svg height="16" class="octicon octicon-check" viewBox="0 0 12 16" version="1.1" width="12" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
                  Suggestion applied
                </button>
                <button class="btn btn-sm js-disabled-apply-suggestion-button d-none tooltipped tooltipped-multiline tooltipped-n" data-pull-is-open="false" aria-label="" disabled>
                  Commit suggestion
                  <svg class="octicon octicon-triangle-down v-align-text-bottom" height="14" viewBox="0 0 12 16" version="1.1" width="10" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg>
                </button>

              </div>
            </template>

            <div class="form-group flex-auto warn m-0 text-orange js-error-message-placeholder" hidden>
              <div class="position-relative warning m-0" style="max-width: inherit;">
                <span class="js-error-message"></span>
                <span class="text-bold btn-link js-refresh-after-suggestion">Refresh and try again.</span>
              </div>
            </div>



<div class="comment-reactions  js-reactions-container js-socket-channel js-updatable-content"

      data-channel="reaction:pull-request-review-comment:272796448"
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==/comments/reactions"
    >
</div>

      </div>
    </div>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="3MI6yepb3m5ZrVz3tzYo3er/o5xA9jeyve//X7Tkj5sGEBhN+jOu7wZnbns7jmmtIp9YvTeWCtAiUQyAj6QhJg==" class="js-comment-update" data-type="json" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272796448" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="q4PtmUf/S4JvMBcVrrX7yVYhUb3xAxnVJxWDUc7m0lgXh3kOWQJtj/syDEujSWx7bcobQOs2n1sE4af5V4SYdg==" />
        <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="TL019PJYxUteHAO3TXYDiMp9yCYdR2/zaQnXV78lOgX5hP7dyWp9UASLECucVTk5Fss9FopRA61bfv9ONq6t1w==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="discussion_r272796448-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=none" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="+gyE8iYTJsLzWsyZBMcwvm2yF2BV990ShT9P7NyQkT8g3qZ2NntWQ6yQ/hWIf3HOpdLsQSKX4HAagbwz59A/gg=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="discussion">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="pull_request_review_comment[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjc5NjQ0OA==">
  <input type="hidden" name="pull_request_review_comment[bodyVersion]" class="js-body-version" value="cb2c551d0d9dac9546de9ea2988f9bdd">
  <textarea name="pull_request_review_comment[body]"
            id="discussion_r272796448-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >Maybe `Opaque` is not a very straight forward word to understand. That part of code is handling urls whose pattern is `host:port`, such as &quot;localhost:5000&quot; or so.

I do not like the way `Opaque` used here, but it is in the standard library net/url/url.go

```
// A URL represents a parsed URL (technically, a URI reference).
//
// The general form represented is:
//
//	[scheme:][//[userinfo@]host][/]path[?query][#fragment]
//
// URLs that do not start with a slash after the scheme are interpreted as:
//
//	scheme:opaque[?query][#fragment]
//
// Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.
// A consequence is that it is impossible to tell which slashes in the Path were
// slashes in the raw URL and which were %2f. This distinction is rarely important,
// but when it is, code must not use Path directly.
// The Parse function sets both Path and RawPath in the URL it returns,
// and URL&#39;s String method uses RawPath if it is a valid encoding of Path,
// by calling the EscapedPath method.
type URL struct {
	Scheme     string
	Opaque     string    // encoded opaque data
	User       *Userinfo // username and password information
	Host       string    // host or host:port
	Path       string    // path (relative paths may omit leading slash)
	RawPath    string    // encoded path hint (see EscapedPath method)
	ForceQuery bool      // append a query (&#39;?&#39;) even if RawQuery is empty
	RawQuery   string    // encoded query values, without &#39;?&#39;
	Fragment   string    // fragment for references, without &#39;#&#39;
}
```

any suggestions for making this part more elegant?</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="right">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="+	if len(parsedUrl.Opaque) &gt; 0 {" class="js-original-line">
    <input type="hidden" name="path" value="pkg/redispool/redispool.go" class="js-path">
    <input type="hidden" name="line" value="62" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>  </div>
</div>



<div class="review-comment js-minimizable-comment-group js-targetable-comment"
      id="discussion_r272957122"
      data-gid="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg=="
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==/comments/review_comment">

    <div class="minimized-comment d-none">




  <details class="Details-element details-reset "
       data-body-version="b844590cffa5a736fcb6fac819c0af65">
    <summary class="text-gray f6">
      <div class="d-flex flex-justify-between flex-items-center">
        <h3 class="review-comment-contents bg-white f5 text-normal text-italic" style="margin-left:38px">
          <div class="discussion-item-icon discussion-item-icon-gray text-gray">
            <svg class="octicon octicon-fold" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"/></svg>
          </div>
          <div class="discussion-item-copy d-inline-block">
                This comment has been minimized.

          </div>
        </h3>
        <div class="Details-content--closed btn-link text-gray"><svg class="octicon octicon-unfold mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z"/></svg>Show comment</div>
        <div class="Details-content--open btn-link text-gray"><svg class="octicon octicon-fold mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"/></svg>Hide comment</div>
      </div>
    </summary>
    <div class="py-2 pl-6 pr-0">
      <div class="previewable-edit  js-task-list-container reorderable-task-lists">
        <div class="edit-comment-hide">
          <div class="timeline-comment-actions">



















<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="discussion_r272957122-minimized-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

            <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="inline-form js-comment-unminimize width-full" action="/sourcegraph/sourcegraph/community/unminimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="VRbLkqEWr9GuRaM2iQDKtj+mdU0mbyKWI2KeumosDRCSIR6TsIOOc3eiTnzouvDyp6O9/L4P2NeK6cWSFnzfCg==" />
        <input type="hidden" name="comment_id" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==" >
        <button
          type="submit"
          class="dropdown-item btn-link"
          role="menuitem"
          aria-label="Unhide comment">
          Unhide
        </button>
</form>
          <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272957122" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="ry0VnMWEcTiTXHL4C0a+myD55wkIaeWi3NO67XhdxLEnnAz+3RBHu5WeG+LU5qp+VBqXBRLJlf8yjNb4d/SjHQ==" />
      <input type="hidden" name="input[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">
      <button
        type="submit"
        class="dropdown-item menu-item-danger btn-link"
        aria-label="Delete comment"
        role="menuitem"
        data-confirm="Are you sure you want to delete this?">
        Delete
      </button>
</form>
        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23discussion_r272957122&amp;report=alexandnpu+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

          </div>
            <a class="float-left mt-1" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu"><img class="avatar" height="28" width="28" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" /></a>
          <div class="review-comment-contents">
            <h4 class="f5 text-normal d-inline text-gray-dark">
              <strong class="text-gray">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>


              </strong>
              <span class="text-gray">
                  <a href="#discussion_r272957122" id="discussion_r272957122-minimized-permalink" class="timestamp"><relative-time datetime="2019-04-08T09:28:14Z">Apr 8, 2019</relative-time></a>
              </span>
            </h4>


            <span
  class="timeline-comment-label tooltipped tooltipped-multiline tooltipped-s"
  aria-label="This user is the author of this pull request.">
  Author
</span>

            <task-lists disabled sortable>
              <div class="comment-body markdown-body p-0 pt-1 js-comment-body ">
                  <p>I've updated my way of parsing redis connection string and added some tests. Please have a review.</p>
              </div>
            </task-lists>
          </div>
        </div>

          <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="WAlMeLQf6N4FrjU/dC8L2qd5XAbiydg6UbnvZZVSK6qC2278pHeYX1pkB7P4l0qqbxmnJ5Wp5VjOBxy6rhKFFw==" class="js-comment-update" data-type="json" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272957122" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="g9FU2GK4ldgaNBbUQHh59rclbuitrkmFxinl5Y6luwVxRp02o0hRa+Z2QCu8xJI2VW0n1SJ5xBEQ1q0PV2Z3ew==" />
            <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="zLAaOa/CYzVXd5tyeOTsaxsRFcp5rOBBaMFUBi4b+kN5idEQlPDbLg3giO6px9bax6fg+u66jB9atnwfp5BtkQ==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="discussion_r272957122-minimize-comment-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=none" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="mc5pNxE0K+D9MVJD05lhlX1fBZtE32A9XFAcmk44i5pDHEuzAVxbYaL7YM9fISDltT/+ujO/XV/D7u9FdXglJw=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="discussion">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="pull_request_review_comment[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">
  <input type="hidden" name="pull_request_review_comment[bodyVersion]" class="js-body-version" value="b844590cffa5a736fcb6fac819c0af65">
  <textarea name="pull_request_review_comment[body]"
            id="discussion_r272957122-minimize-comment-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >I&#39;ve updated my way of parsing redis connection string and added some tests. Please have a review.</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="right">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="+	if len(parsedUrl.Opaque) &gt; 0 {" class="js-original-line">
    <input type="hidden" name="path" value="pkg/redispool/redispool.go" class="js-path">
    <input type="hidden" name="line" value="62" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>      </div>
    </div>
  </details>


    </div>

  <div class="previewable-edit js-suggested-changes-container js-task-list-container unminimized-comment js-comment  reorderable-task-lists"
       data-body-version="b844590cffa5a736fcb6fac819c0af65"
       data-thread-side="right">
    <div class="edit-comment-hide">
      <div class="timeline-comment-actions">

  <details class="details-overlay details-reset position-relative d-inline-block js-socket-channel js-updatable-content js-reaction-popover-container js-comment-header-reaction-button"
      data-channel="reaction:pull-request-review-comment:272957122"
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==/comments/comment_header_reaction_button">
    <summary class="btn-link timeline-comment-action" aria-label="Add your reaction">
      <svg class="octicon octicon-plus-small add-reaction-plus-icon" viewBox="0 0 7 16" version="1.1" width="7" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4H3v3H0v1h3v3h1V8h3V7H4V4z"/></svg>
      <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
    </summary>

<details-menu class="dropdown-menu dropdown-menu-sw add-reaction-popover js-add-reaction-popover anim-scale-in" aria-label="Pick your reaction">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="reaction-popover-form js-pick-reaction" action="/users/sourcegraph/reactions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="qWp4wos5KthGTSpFDc9XbOBk2GVxKGfcBN6/9iVvMF92Lco66qqUkSh3MbgS8Yu+XIJG5o0A+JDsLiTHX4OHPg==" />
    <p class="text-gray mx-2 my-1">
      <span class="js-reaction-description">Pick your reaction</span>
      <img alt="" width="16" height="16" class="loading-spinner" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
    </p>

    <div role="none" class="dropdown-divider"></div>

    <div class="add-reactions-options mx-1 mb-1">
      <input type="hidden" name="input[subjectId]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">

        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="+1"
          name="input[content]"
          aria-label="React with thumbs up emoji"
          value="THUMBS_UP react">
          <g-emoji alias="+1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" class="emoji">👍</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="-1"
          name="input[content]"
          aria-label="React with thumbs down emoji"
          value="THUMBS_DOWN react">
          <g-emoji alias="-1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png" class="emoji">👎</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Laugh"
          name="input[content]"
          aria-label="React with laugh emoji"
          value="LAUGH react">
          <g-emoji alias="smile" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" class="emoji">😄</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Hooray"
          name="input[content]"
          aria-label="React with hooray emoji"
          value="HOORAY react">
          <g-emoji alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png" class="emoji">🎉</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Confused"
          name="input[content]"
          aria-label="React with confused emoji"
          value="CONFUSED react">
          <g-emoji alias="thinking_face" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f615.png" class="emoji">😕</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Heart"
          name="input[content]"
          aria-label="React with heart emoji"
          value="HEART react">
          <g-emoji alias="heart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" class="emoji">❤️</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Rocket"
          name="input[content]"
          aria-label="React with rocket emoji"
          value="ROCKET react">
          <g-emoji alias="rocket" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f680.png" class="emoji">🚀</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Eyes"
          name="input[content]"
          aria-label="React with eyes emoji"
          value="EYES react">
          <g-emoji alias="eyes" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f440.png" class="emoji">👀</g-emoji>
        </button>
    </div>
</form></details-menu>

  </details>

        <details class="details-overlay details-reset position-relative d-inline-block" id="details-discussion_r272957122">
          <summary class="btn-link timeline-comment-action" aria-label="Show more options">
            <svg class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
          </summary>

          <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px; z-index: 99;">

            <clipboard-copy
              class="dropdown-item btn-link"
              for="discussion_r272957122-permalink"
              data-toggle-for="details-discussion_r272957122"
              role="menuitem">
              Copy link
            </clipboard-copy>

            <button
              type="button"
              role="menuitem"
              class="dropdown-item btn-link d-none js-comment-quote-reply"
              data-toggle-for="details-discussion_r272957122">
              Quote reply
            </button>


<details
  class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark "
  >
  <summary
      class="dropdown-item"
      aria-haspopup="dialog"


        role="menuitem"

      >

    Reference in new issue
  </summary>
  <details-dialog
    aria-label="Reference in new issue"
    class="Box Box--overlay d-flex flex-column anim-fade-in fast "

    >
    <div class="Box-header">
      <button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
      </button>
      <h3 class="Box-title">Reference in new issue</h3>
    </div>

                <div class="Box-body scrollable-overlay">

<!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/comments/issues" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="3+vizAeGRVeBeEruoScdO8qVBkJ58iNiCGhmtogImaJvDYFty0ysEs25pMabHPTsYInWCPyH3sRfpDfi5i/Hww==" />
  <dl class="form-group">
    <dt><label for="convert-to-issue-repository-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">Repository</label></dt>
    <dd>
      <details class="details-reset details-overlay select-menu">
        <summary class="btn select-menu-button" data-menu-button>
          <input type="hidden" name="issue[repository_id]" value="41288708" checked>
          sourcegraph
        </summary>
        <details-menu class="select-menu-modal position-absolute" style="z-index: 99;" src="/sourcegraph/sourcegraph/related_repositories" preload>
          <div class="select-menu-header">
            <span class="select-menu-title">Repositories</span>
          </div>
          <div class="select-menu-filters">
            <div class="select-menu-text-filter">
              <filterable-input src="/sourcegraph/sourcegraph/related_repositories" aria-owns="related-repositories-menu">
                <input type="text" class="form-control" aria-label="Type to filter" placeholder="Find a repository" autofocus>
              </filterable-input>
            </div>
          </div>
          <include-fragment class="octocat-spinner my-6" aria-label="Loading"></include-fragment>
        </details-menu>
      </details>
    </dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-title-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">Title</label></dt>
    <dd><input id="convert-to-issue-title-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==" class="form-control" type="text" name="issue[title]" value="I&#39;ve updated my way of parsing redis connection string and added some tests. Please have a review." aria-label="Issue title" autofocus required></dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-body-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">Body</label></dt>
    <dd><textarea id="convert-to-issue-body-MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==" name="issue[body]" class="form-control" aria-label="Issue body">I&#39;ve updated my way of parsing redis connection string and added some tests. Please have a review.

_Originally posted by @alexandnpu in https://github.com/sourcegraph/sourcegraph/pull/3221_</textarea></dd>
  </dl>

  <div class="d-flex d-sm-block">
    <button type="submit" class="btn btn-primary" data-disable-with="Creating issue..." data-disable-invalid data-ga-click="Issues, create new issue, location:comment_menu logged_in:true">
      Create issue
    </button>
  </div>
</form>
                </div>

  </details-dialog>
</details>

              <div role="none" class="dropdown-divider"></div>

            <button
              type="button"
              role="menuitem"
              class="dropdown-item btn-link js-comment-edit-button"
              aria-label="Edit comment">
              Edit
            </button>


            <button
                type="button"
                role="menuitem"
                class="dropdown-item btn-link js-comment-hide-button"
                aria-label="Hide comment">
              Hide
            </button>

            <a aria-label="Report content" class="dropdown-item btn-link" role="menuitem" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23discussion_r272957122&amp;report=alexandnpu+%28user%29">
              Report
</a>
            <div role="none" class="dropdown-divider"></div>
            <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272957122" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="EOUgglmSBW9CHq3OttU5UHUgFyzhDfVnBEz/31vrYQSYVDngQQYz7ETcxNRpdS21AcNnIPuthTrqE5PKVEIGqA==" />
              <input type="hidden" name="input[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">
              <button
                  type="submit"
                  role="menuitem"
                  class="dropdown-item menu-item-danger btn-link"
                  aria-label="Delete comment"
                  data-confirm="Are you sure you want to delete this?">
                Delete
              </button>
</form>
          </details-menu>
        </details>
      </div>

      <span class="float-left mt-1">
        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu"><img class="avatar" height="28" width="28" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" /></a>
      </span>

      <div class="review-comment-contents js-suggested-changes-contents" data-thread-side="right">
        <h4 class="f5 text-normal d-inline">
          <strong>
              <a class="author link-gray-dark" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>

          </strong>
          <span class="text-gray">

              <a href="#discussion_r272957122" id="discussion_r272957122-permalink" class="js-timestamp timestamp d-inline-block">
                <relative-time datetime="2019-04-08T09:28:14Z">Apr 8, 2019</relative-time>
              </a>

          </span>
        </h4>

        <span
  class="timeline-comment-label tooltipped tooltipped-multiline tooltipped-s"
  aria-label="This user is the author of this pull request.">
  Author
</span>




          <div class="js-minimize-comment d-none">


<div class="flash flash-warn my-2">
  <button class="flash-close js-comment-hide-minimize-form" type="button"><svg aria-label="Cancel hiding comment" class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg></button>
  <h3 class="f5">Choose a reason for hiding this comment</h3>
  <p class="mb-3">The reason will be displayed to describe this comment to others. <a href="https://help.github.com/articles/managing-disruptive-comments/#hiding-a-comment">Learn more</a>.</p>
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-minimize" action="/sourcegraph/sourcegraph/community/minimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="v4/W5yE1HXONeYnUgMVuDYQeBkrNX07e93JraKNUe/vDk+sfwf2uNal6mxBOBXxdEKx4yX86dgdxuIHYR0D+2Q==" />
    <input type="hidden" name="comment_id" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">
    <select name="classifier" class="form-select mr-2" aria-label="Reason" required>
      <option value>
      Choose a reason
      </option>
      <option value="SPAM">Spam</option>
<option value="ABUSE">Abuse</option>
<option value="OFF_TOPIC">Off Topic</option>
<option value="OUTDATED">Outdated</option>
<option value="RESOLVED">Resolved</option>
    </select>
    <button type="submit" class="btn">
      Hide comment
    </button>
</form></div>

          </div>



        <task-lists disabled sortable>
          <div class="comment-body markdown-body  js-comment-body">
            <p>I've updated my way of parsing redis connection string and added some tests. Please have a review.</p>
          </div>
        </task-lists>

            <template class="js-suggested-changes-template" data-comment-pending="false" data-outdated-comment="true">
              <div class="p-2 border-top d-flex flex-justify-end flex-items-center suggested-change-form-container js-suggested-change-form-container" data-comment-pending="false" data-outdated-comment="true" data-resolved-comment="false">
                <button class="btn btn-sm js-suggestion-applied d-none" disabled>
                  <svg height="16" class="octicon octicon-check" viewBox="0 0 12 16" version="1.1" width="12" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
                  Suggestion applied
                </button>
                <button class="btn btn-sm js-disabled-apply-suggestion-button d-none tooltipped tooltipped-multiline tooltipped-n" data-pull-is-open="false" aria-label="" disabled>
                  Commit suggestion
                  <svg class="octicon octicon-triangle-down v-align-text-bottom" height="14" viewBox="0 0 12 16" version="1.1" width="10" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg>
                </button>

              </div>
            </template>

            <div class="form-group flex-auto warn m-0 text-orange js-error-message-placeholder" hidden>
              <div class="position-relative warning m-0" style="max-width: inherit;">
                <span class="js-error-message"></span>
                <span class="text-bold btn-link js-refresh-after-suggestion">Refresh and try again.</span>
              </div>
            </div>



<div class="comment-reactions  js-reactions-container js-socket-channel js-updatable-content"

      data-channel="reaction:pull-request-review-comment:272957122"
      data-url="/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==/comments/reactions"
    >
</div>

      </div>
    </div>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="0N+JaV8SPUYhMHkRkSAy1NO7kmuDbjkbs1AZzdNbHaQKDavtT3pNx376S50dmHOkG9tpSvQOBHks7uoS6BuzGQ==" class="js-comment-update" data-type="json" action="/sourcegraph/sourcegraph/pull/3221/review_comment/272957122" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="cr84NMitcEICpYZUTUDl5Z0fvkN96rjj1BgjybbyQ9uAKPHaCV208f7n0Kux/A4lf1f3fvI9NXcC52sjbzGPpQ==" />
        <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="/GuZzghANOxJTrrti4E2lEKAfOsqc/Xsjzs9gBXXY6BJUlLnM3KM9xPZqXFaogwlnjaJ271lmbK9TBWZnFz0cg==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="discussion_r272957122-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=none" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="jfaefyywGFhqcNh77iCPHcj8WdSUPGeoHRpyOOsErbVXJLz7PNho2TW66vdimM5tAJyi9eNcWsqCpIHn0EQDCA=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="discussion">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="pull_request_review_comment[id]" value="MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3Mjk1NzEyMg==">
  <input type="hidden" name="pull_request_review_comment[bodyVersion]" class="js-body-version" value="b844590cffa5a736fcb6fac819c0af65">
  <textarea name="pull_request_review_comment[body]"
            id="discussion_r272957122-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >I&#39;ve updated my way of parsing redis connection string and added some tests. Please have a review.</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="right">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="+	if len(parsedUrl.Opaque) &gt; 0 {" class="js-original-line">
    <input type="hidden" name="path" value="pkg/redispool/redispool.go" class="js-path">
    <input type="hidden" name="line" value="62" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>  </div>
</div>



    </div>

      <div class="review-thread-reply border-bottom">

<div class="inline-comment-form-container js-inline-comment-form-container">
  <div class="inline-comment-form-actions">
    <div class="d-table width-full">
      <div class="d-table-cell">
        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1741180" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/lguychard"><img class="avatar" src="https://avatars2.githubusercontent.com/u/1741180?s=56&amp;v=4" width="28" height="28" alt="@lguychard" /></a>
      </div>
      <div class="d-table-cell col-12">
        <button type="button" class="review-thread-reply-button width-full text-gray text-left form-control js-toggle-inline-comment-form">
          Reply…
        </button>
      </div>
    </div>
  </div>

  <div class="inline-comment-form">
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-inline-comment-form" action="/sourcegraph/sourcegraph/pull/3221/review_comment/create" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="gxCUt5MQM/R95kooLcvmqrwYYBDW0a16B6hp0nJXppWCqJDcFEhNuRuIESDx78nuzdmKjkxR805JFyhgSsAnTA==" />
      <input type="hidden" name="comment_context" value="discussion">
      <input type="hidden" name="in_reply_to" value="272416639">


<div class="js-previewable-comment-form js-suggested-changes-container previewable-comment-form write-selected" data-preview-url="/preview?repository=41288708" data-preview-authenticity-token="UFZ0EiPpZ+e4YHJGl+b6HsDY/AxCnO+BFdeAGqz124Hlb787GNvf/OL3YdpGxcCvHG4JPNWKg98noKgDJX5MUw==">
  <div class="comment-form-head tabnav">

<markdown-toolbar for="new_inline_comment_discussion_diff-5bd3e793932782601ddbd53a3d8dd073_272416639_21" class="toolbar-commenting ">
    <div class="toolbar-group">
      <button type="button" class="toolbar-item tooltipped tooltipped-n js-suggested-change-toolbar-item" aria-label="Insert a suggestion &lt;cmd-g&gt;" data-hydro-click="{&quot;event_type&quot;:&quot;suggested_changes.target.click&quot;,&quot;payload&quot;:{&quot;user_id&quot;:1741180,&quot;target_type&quot;:&quot;insert_suggestion&quot;,&quot;pull_request_id&quot;:&quot;MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3&quot;,&quot;relationship_to_suggestion&quot;:&quot;reviewer&quot;,&quot;client_id&quot;:&quot;1032549827.1548354440&quot;,&quot;originating_request_id&quot;:&quot;C1A5:1FB94:1D9944:2C1953:5CB87E24&quot;,&quot;originating_url&quot;:&quot;https://github.com/sourcegraph/sourcegraph/pull/3221&quot;,&quot;referrer&quot;:&quot;https://github.com/sourcegraph/sourcegraph/issues/3480&quot;}}" data-hydro-click-hmac="b2c27d592009bbae4ac8ccac7d39787701bf5e39fd5d624ddba8b94bfd74b4c7" data-ga-click="Markdown Toolbar, click, insert code suggestion" hotkey="g">
          <svg class="octicon octicon-diff" viewBox="0 0 13 16" version="1.1" width="13" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 7h2v1H6v2H5V8H3V7h2V5h1v2zm-3 6h5v-1H3v1zM7.5 2L11 5.5V15c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h6.5zM10 6L7 3H1v12h9V6zM8.5 0H3v1h5l4 4v8h1V4.5L8.5 0z"/></svg>
</button>    </div>
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=none" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

    <nav class="tabnav-tabs" role="tablist">
      <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
      <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
    </nav>
  </div>

  <file-attachment class="js-upload-markdown-image is-default" data-upload-repository-id=="41288708" data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="m6xe5CHzIqtrts1lj+jPYyK6YKWJdZYoRbrPFn+t4fJBfnxgMZtSKjR8/+kDUI4T6tqbhP4Vq0raBDzJRO1PTw==">
    <div class="write-content js-write-bucket upload-enabled">
      <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

      <textarea name="comment[body]"
                id="new_inline_comment_discussion_diff-5bd3e793932782601ddbd53a3d8dd073_272416639_21"
                placeholder="Leave a comment"
                aria-label="Comment body"
                class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable"
                data-suggest-emoji="/autocomplete/emoji"
                data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
                data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
                ></textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

    </div>
</file-attachment>
  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>


      <div class="form-actions">
        <div class="position-relative float-right ml-1">
          <input type="hidden" name="single_comment" value="1">

          <button name="single_comment" type="submit" value="1" class="btn review-simple-reply-button btn-primary" data-disable-invalid data-disable-with>
            Comment
          </button>
        </div>

        <button class="btn js-hide-inline-comment-form" type="button" data-confirm-cancel-text="Are you sure you want to discard your unsaved changes?">Cancel</button>
      </div>
</form>  </div>
</div>

      </div>
  </div>

    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-resolvable-timeline-thread-form" action="/sourcegraph/sourcegraph/pull/3221/threads/MDIzOlB1bGxSZXF1ZXN0UmV2aWV3VGhyZWFkMTY2NDA0MTMwOnYy/resolve" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="wdMJJ81/Lnbk908xpN2UP2Te2LmyGUfXsE18BgExfR+eEHUPnoyav0s7gUqLVHICe0IxKfSoJHy0U/IOoAmdAA==" />
      <button name="button" type="submit" class="btn m-3" data-disable-with="Resolving conversation…" data-hydro-click="{&quot;event_type&quot;:&quot;resolvable_threads.resolve&quot;,&quot;payload&quot;:{&quot;thread_id&quot;:166404130,&quot;user_id&quot;:1741180,&quot;client_id&quot;:&quot;1032549827.1548354440&quot;,&quot;originating_request_id&quot;:&quot;C1A5:1FB94:1D9944:2C1953:5CB87E24&quot;,&quot;originating_url&quot;:&quot;https://github.com/sourcegraph/sourcegraph/pull/3221&quot;,&quot;referrer&quot;:&quot;https://github.com/sourcegraph/sourcegraph/issues/3480&quot;}}" data-hydro-click-hmac="7d8841e20b3ab56c23bf85644d3d5bf3a66b561d8cb23eefcec8c65985803fa0">
        Resolve conversation
</button></form>
</div>




</div>




</div>


</div>

</div>



<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MjY3NDM3NDQ3OjgxMDA4ZjRmOTk5ZThhYTRkN2M0Nzc0NmVlNDQyMTMzNGYzMDRhZjk=">


<div class="discussion-item discussion-commits" id="commits-pushed-81008f4">
  <div class="discussion-item-body">
    <div class="timeline-commits ">


<div class="commit js-details-container Details js-socket-channel js-updatable-content no-wrap d-flex mb-2"
     data-channel="repo:41288708:commit:81008f4f999e8aa4d7c47746ee4421334f304af9"
     data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MjY3NDM3NDQ3OjgxMDA4ZjRmOTk5ZThhYTRkN2M0Nzc0NmVlNDQyMTMzNGYzMDRhZjk=/commit/pull_condensed">

  <div class="commit-icon mr-3">
    <svg class="octicon octicon-git-commit" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
  </div>


<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="alexandnpu">
        <a class="avatar" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">
          <img height="20" width="20" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" />
</a>  </div>
</div>



  <div class="commit-message pr-1">
    <code>
      <a title="change the way to handle redis url" data-pjax="true" class="message" href="/sourcegraph/sourcegraph/pull/3221/commits/81008f4f999e8aa4d7c47746ee4421334f304af9">change the way to handle redis url</a>
    </code>


  </div>

  <div class="commit-sig-status text-right pr-1">


  </div>

  <div class="commit-ci-status pr-1">
  </div>

  <div class="commit-meta text-right">
    <code>
      <a href="/sourcegraph/sourcegraph/pull/3221/commits/81008f4f999e8aa4d7c47746ee4421334f304af9" class="commit-id">81008f4</a>
    </code>
  </div>
</div>


    </div>
  </div>
</div>


</div>



<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDIzOkhlYWRSZWZGb3JjZVB1c2hlZEV2ZW50MjI1OTA5MDI4MQ==">

        <div class="discussion-item discussion-item-head_ref_force_pushed" data-team-hovercards-enabled>
  <h3 class="discussion-item-header f5 text-normal" id="event-2259090281">

    <span class="discussion-item-icon">
      <svg class="octicon octicon-repo-force-push" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 9H8v7H6V9H4l2.25-3H4l3-4 3 4H7.75L10 9zm1-9H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9v9H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"/></svg>
    </span>



        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu"><img class="avatar" height="16" width="16" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" /></a>
  <a class="author text-inherit" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>




<a data-hydro-click="{&quot;event_type&quot;:&quot;force_push_timeline_diff.click&quot;,&quot;payload&quot;:{&quot;pull_request_id&quot;:267437447,&quot;repository_id&quot;:179436078,&quot;event_id&quot;:2259090281,&quot;client_id&quot;:&quot;1032549827.1548354440&quot;,&quot;originating_request_id&quot;:&quot;C1A5:1FB94:1D9944:2C1953:5CB87E24&quot;,&quot;originating_url&quot;:&quot;https://github.com/sourcegraph/sourcegraph/pull/3221&quot;,&quot;referrer&quot;:&quot;https://github.com/sourcegraph/sourcegraph/issues/3480&quot;,&quot;user_id&quot;:1741180}}" data-hydro-click-hmac="7ad32e2144474e239dc08d9d6f063ee3d3a78ee5d11d17bdbfdefe28d815847f" href="/sourcegraph/sourcegraph/compare/599667e6949d53bce28c2bf575b44945edfa0296..81008f4f999e8aa4d7c47746ee4421334f304af9">force-pushed</a> the
<span class="commit-ref user-select-contain">
  <span class="css-truncate-target">
    alexandnpu:feature/make_redis_support_password

  </span>
</span>
branch
  from
  <a href="/sourcegraph/sourcegraph/commit/599667e6949d53bce28c2bf575b44945edfa0296"><code class="discussion-item-entity">599667e</code></a>
  to
  <a href="/sourcegraph/sourcegraph/commit/81008f4f999e8aa4d7c47746ee4421334f304af9"><code class="discussion-item-entity">81008f4</code></a>


    <a href="#event-2259090281" class="timestamp"><relative-time datetime="2019-04-08T09:39:11Z">Apr 8, 2019</relative-time></a>

  </h3>
</div>


  <div class="discussion-item discussion-item-milestoned" data-team-hovercards-enabled>
  <h3 class="discussion-item-header f5 text-normal" id="event-2284264072">

    <span class="discussion-item-icon">
      <svg class="octicon octicon-milestone" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 2H6V0h2v2zm4 5H2c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h10l2 2-2 2zM8 4H6v2h2V4zM6 16h2V8H6v8z"/></svg>
    </span>



        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar" height="16" width="16" alt="@beyang" src="https://avatars0.githubusercontent.com/u/1646931?s=60&amp;v=4" /></a>
  <a class="author text-inherit" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>





  added this to the   <a href="/sourcegraph/sourcegraph/milestone/21" class="discussion-item-entity">3.4</a> milestone


    <a href="#event-2284264072" class="timestamp"><relative-time datetime="2019-04-17T23:46:42Z">Apr 18, 2019</relative-time></a>

  </h3>
</div>


  <div class="discussion-item">
        <h3 class="discussion-item-header f5 text-normal" id="ref-issue-434532810">
      <span class="discussion-item-icon">
        <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
      </span>
        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1387653" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/chrismwendt"><img class="avatar" height="16" width="16" alt="@chrismwendt" src="https://avatars0.githubusercontent.com/u/1387653?s=60&amp;v=4" /></a>
  <a class="author text-inherit" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1387653" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/chrismwendt">chrismwendt</a>


        referenced this pull request
      <a class="timestamp" href="#ref-issue-434532810">
        <relative-time datetime="2019-04-17T23:52:49Z">Apr 18, 2019</relative-time>
      </a>
    </h3>


      <span class="State State--green State--small float-right ml-1" title="Status: Open">

  <svg height="14" class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="12" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg> Open

</span>




      <h4 class="discussion-item-ref-title">
        <a href="/sourcegraph/sourcegraph/issues/3480" class="title-link" data-hovercard-type="issue" data-hovercard-url="/sourcegraph/sourcegraph/issues/3480/hovercard">
          Code intel sometimes doesn&#39;t work on GitHub PRs
          <span class="issue-num">#3480</span>
</a>      </h4>







</div>

  <div class="discussion-item">
        <h3 class="discussion-item-header f5 text-normal" id="ref-pullrequest-434595204">
      <span class="discussion-item-icon">
        <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
      </span>
        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar" height="16" width="16" alt="@beyang" src="https://avatars0.githubusercontent.com/u/1646931?s=60&amp;v=4" /></a>
  <a class="author text-inherit" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>


        referenced this pull request
      <a class="timestamp" href="#ref-pullrequest-434595204">
        <relative-time datetime="2019-04-18T05:23:03Z">Apr 18, 2019</relative-time>
      </a>
    </h3>


      <span class="State State--green State--small float-right ml-1" title="Status: Open">

  <svg height="14" class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="10" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg> Open

</span>




      <h4 class="discussion-item-ref-title">
        <a href="/sourcegraph/sourcegraph/pull/3482" class="title-link" data-hovercard-type="pull_request" data-hovercard-url="/sourcegraph/sourcegraph/pull/3482/hovercard">
          Make redis support password
          <span class="issue-num">#3482</span>
</a>      </h4>







</div>



</div>



<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">


<div class="timeline-comment-wrapper js-comment-container"
      data-gid="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA=="
      data-url="/_render_node/MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==/timeline/issue_comment">



<div class="avatar-parent-child timeline-comment-avatar">
    <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar rounded-1" height="44" width="44" alt="@beyang" src="https://avatars1.githubusercontent.com/u/1646931?s=88&amp;v=4" /></a>

</div>



<div class="timeline-comment-group js-minimizable-comment-group js-targetable-comment" id="issuecomment-484361618">
    <div class="minimized-comment d-none ">




  <details class="Details-element details-reset border rounded-1 bg-white"
       data-body-version="1b7d052371c1123bd3f20f025b25b565">
    <summary class="bg-gray border-bottom-0 py-0 px-2">
      <div class="d-flex flex-justify-between flex-items-center">
        <h3 class="timeline-comment-header-text f5 text-gray text-normal text-italic">
              This comment has been minimized.

        </h3>
        <div class="Details-content--closed text-gray f6"><svg class="octicon octicon-unfold position-relative mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z"/></svg>Show comment</div>
        <div class="Details-content--open text-gray f6"><svg class="octicon octicon-fold position-relative mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"/></svg>Hide comment</div>
      </div>
    </summary>
    <div class="review-comment border-top pt-3">
      <div class="previewable-edit  js-task-list-container reorderable-task-lists">
        <div class="edit-comment-hide">
          <div class="timeline-comment-actions">



















<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="issuecomment-484361618-minimized-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

            <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="inline-form js-comment-unminimize width-full" action="/sourcegraph/sourcegraph/community/unminimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="UkIRag51d8gjdrpj7T67bQhb5mhqluNNkuBGq9nji9qVdcRrH+BWavqRVymMhIEpkF4u2fL2GQw7ax2DpbNZwA==" />
        <input type="hidden" name="comment_id" value="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==" >
        <button
          type="submit"
          class="dropdown-item btn-link"
          role="menuitem"
          aria-label="Unhide comment">
          Unhide
        </button>
</form>
          <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/issue_comments/484361618" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="FP1pH8HZMFo4CFTB8I26UzFtgPhwA8H8doIdl5VGYjg1IFZBTZPFoWUBk9HzrVxue1NUgxx02Ac+hX3yIcKFMg==" />
      <input type="hidden" name="input[id]" value="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">
      <button
        type="submit"
        class="dropdown-item menu-item-danger btn-link"
        aria-label="Delete comment"
        role="menuitem"
        data-confirm="Are you sure you want to delete this?">
        Delete
      </button>
</form>
        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23issuecomment-484361618&amp;report=beyang+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

          </div>
            <a class="float-left mt-1" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar" height="28" width="28" alt="@beyang" src="https://avatars0.githubusercontent.com/u/1646931?s=60&amp;v=4" /></a>
          <div class="review-comment-contents">
            <h4 class="f5 text-normal d-inline text-gray-dark">
              <strong class="text-gray">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>


              </strong>
              <span class="text-gray">
                  <a href="#issuecomment-484361618" id="issuecomment-484361618-minimized-permalink" class="timestamp"><relative-time datetime="2019-04-18T05:30:55Z">Apr 18, 2019</relative-time></a>
              </span>
            </h4>

    <span class="timeline-comment-label text-bold tooltipped tooltipped-multiline tooltipped-s" aria-label="This user is a member of the Sourcegraph organization.">
      Member
    </span>


            <task-lists disabled sortable>
              <div class="comment-body markdown-body p-0 pt-1 js-comment-body ">
                  <p>Thanks for pushing up this PR <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alexandnpu">@alexandnpu</a>. I've incorporated this into  <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="434595204" data-permission-text="Issue title is private" data-url="https://github.com/sourcegraph/sourcegraph/issues/3482" data-hovercard-type="pull_request" data-hovercard-url="/sourcegraph/sourcegraph/pull/3482/hovercard" href="https://github.com/sourcegraph/sourcegraph/pull/3482">#3482</a>, so will close this in favor of that. I expect this to ship in 3.4.</p>
              </div>
            </task-lists>
          </div>
        </div>

          <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="x6BMKsFQVHPyjOyIuQKxBLmN6FKFq4D5XfBAAfUFJ+Qdcm6u0Tgk8q1G3gQ1uvB0ce0Tc/LLvZvCTrPezkWJWQ==" class="js-comment-update" data-type="json" action="/sourcegraph/sourcegraph/issue_comments/484361618" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="p8GZwaKPJ2KoB2qgfjJKW2fRSpvgxNLLeWR9uKGksyUdqN6bVZcY8PQYSkQwRMTmff96yrtA1hmYV/UENDmzKA==" />
            <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="IJE3U0Jd965/9+KW9XZSPOlhWKjBoGQULfK9DF5wGcyVqPx6eW9PtSVg8QokVWiNNdetmFa2CEofhZUV1/uOHg==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="issuecomment-484361618-minimize-comment-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=pull_request_comment" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="CApQWR7N9oNcOtu0l7LoFb7jdZCybgfOQ9qtxcK8MjvS2HLdDqWGAgPw6TgbCqlldoOOscUOOqzcZF4a+fychg=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="issue_comment[id]" value="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">
  <input type="hidden" name="issue_comment[bodyVersion]" class="js-body-version" value="1b7d052371c1123bd3f20f025b25b565">
  <textarea name="issue_comment[body]"
            id="issuecomment-484361618-minimize-comment-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >Thanks for pushing up this PR @alexandnpu. I&#39;ve incorporated this into  https://github.com/sourcegraph/sourcegraph/pull/3482, so will close this in favor of that. I expect this to ship in 3.4.</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="" class="js-original-line">
    <input type="hidden" name="path" value="" class="js-path">
    <input type="hidden" name="line" value="" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>      </div>
    </div>
  </details>


    </div>
  <div class="unminimized-comment editable-comment comment previewable-edit js-comment js-task-list-container timeline-comment reorderable-task-lists "
       data-body-version="1b7d052371c1123bd3f20f025b25b565"
       data-unfurl-hide-url="/content_reference_attachments/hide"
       data-unfurl-authenticity-token="kNJNNcOD5bAoVgUT7+0lCtECoXSK+qWyVLx6Q4Mb7GrDWczOjYBpClPW5VGTHrqPYHv65X4TnByyBsvSHWJGEQ==">


<div class="timeline-comment-header clearfix">
  <div class="timeline-comment-actions">

















  <details class="details-overlay details-reset position-relative d-inline-block js-socket-channel js-updatable-content js-reaction-popover-container js-comment-header-reaction-button"
      data-channel="reaction:issue-comment:484361618"
      data-url="/_render_node/MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==/comments/comment_header_reaction_button">
    <summary class="btn-link timeline-comment-action" aria-label="Add your reaction">
      <svg class="octicon octicon-plus-small add-reaction-plus-icon" viewBox="0 0 7 16" version="1.1" width="7" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4H3v3H0v1h3v3h1V8h3V7H4V4z"/></svg>
      <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
    </summary>

<details-menu class="dropdown-menu dropdown-menu-sw add-reaction-popover js-add-reaction-popover anim-scale-in" aria-label="Pick your reaction">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="reaction-popover-form js-pick-reaction" action="/users/sourcegraph/reactions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="00o71qgqOQGDkuvhPxyhLllraheEZogcsgZKQzr4mvIMDYkuybmHSO2o8BwgIn385Y30lHhOF1Ba9tFyQBQtkw==" />
    <p class="text-gray mx-2 my-1">
      <span class="js-reaction-description">Pick your reaction</span>
      <img alt="" width="16" height="16" class="loading-spinner" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
    </p>

    <div role="none" class="dropdown-divider"></div>

    <div class="add-reactions-options mx-1 mb-1">
      <input type="hidden" name="input[subjectId]" value="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">

        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="+1"
          name="input[content]"
          aria-label="React with thumbs up emoji"
          value="THUMBS_UP react">
          <g-emoji alias="+1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" class="emoji">👍</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="-1"
          name="input[content]"
          aria-label="React with thumbs down emoji"
          value="THUMBS_DOWN react">
          <g-emoji alias="-1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png" class="emoji">👎</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Laugh"
          name="input[content]"
          aria-label="React with laugh emoji"
          value="LAUGH react">
          <g-emoji alias="smile" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" class="emoji">😄</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Hooray"
          name="input[content]"
          aria-label="React with hooray emoji"
          value="HOORAY react">
          <g-emoji alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png" class="emoji">🎉</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Confused"
          name="input[content]"
          aria-label="React with confused emoji"
          value="CONFUSED react">
          <g-emoji alias="thinking_face" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f615.png" class="emoji">😕</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Heart"
          name="input[content]"
          aria-label="React with heart emoji"
          value="HEART react">
          <g-emoji alias="heart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" class="emoji">❤️</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Rocket"
          name="input[content]"
          aria-label="React with rocket emoji"
          value="ROCKET react">
          <g-emoji alias="rocket" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f680.png" class="emoji">🚀</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Eyes"
          name="input[content]"
          aria-label="React with eyes emoji"
          value="EYES react">
          <g-emoji alias="eyes" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f440.png" class="emoji">👀</g-emoji>
        </button>
    </div>
</form></details-menu>

  </details>




<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="issuecomment-484361618-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>



<details
  class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark "
  >
  <summary
      class="dropdown-item"
      aria-haspopup="dialog"


        role="menuitem"

      >

    Reference in new issue
  </summary>
  <details-dialog
    aria-label="Reference in new issue"
    class="Box Box--overlay d-flex flex-column anim-fade-in fast Box-overlay--wide"

    >
    <div class="Box-header">
      <button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
      </button>
      <h3 class="Box-title">Reference in new issue</h3>
    </div>

      <div class="Box-body overflow-auto">

<!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/comments/issues" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="7NPYw6zQDs1cFtD2GiemAU4pzoD1ALD6TJ2egfL8FbFcNbtiYBrniBDXPt4gHE/W5DUeynB1TVwbUc/VnNtL0A==" />
  <dl class="form-group">
    <dt><label for="convert-to-issue-repository-MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">Repository</label></dt>
    <dd>
      <details class="details-reset details-overlay select-menu">
        <summary class="btn select-menu-button" data-menu-button>
          <input type="hidden" name="issue[repository_id]" value="41288708" checked>
          sourcegraph
        </summary>
        <details-menu class="select-menu-modal position-absolute" style="z-index: 99;" src="/sourcegraph/sourcegraph/related_repositories" preload>
          <div class="select-menu-header">
            <span class="select-menu-title">Repositories</span>
          </div>
          <div class="select-menu-filters">
            <div class="select-menu-text-filter">
              <filterable-input src="/sourcegraph/sourcegraph/related_repositories" aria-owns="related-repositories-menu">
                <input type="text" class="form-control" aria-label="Type to filter" placeholder="Find a repository" autofocus>
              </filterable-input>
            </div>
          </div>
          <include-fragment class="octocat-spinner my-6" aria-label="Loading"></include-fragment>
        </details-menu>
      </details>
    </dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-title-MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">Title</label></dt>
    <dd><input id="convert-to-issue-title-MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==" class="form-control" type="text" name="issue[title]" value="Thanks for pushing up this PR @alexandnpu. I&#39;ve incorporated this into  https://github.com/sourcegraph/sourcegraph/pull/3482, so will close this in favor of that. I expect this to ship in 3.4." aria-label="Issue title" autofocus required></dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-body-MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">Body</label></dt>
    <dd><textarea id="convert-to-issue-body-MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==" name="issue[body]" class="form-control" aria-label="Issue body">Thanks for pushing up this PR @alexandnpu. I&#39;ve incorporated this into  https://github.com/sourcegraph/sourcegraph/pull/3482, so will close this in favor of that. I expect this to ship in 3.4.

_Originally posted by @beyang in https://github.com/sourcegraph/sourcegraph/pull/3221#issuecomment-484361618_</textarea></dd>
  </dl>

  <div class="d-flex d-sm-block">
    <button type="submit" class="btn btn-primary" data-disable-with="Creating issue..." data-disable-invalid data-ga-click="Issues, create new issue, location:comment_menu logged_in:true">
      Create issue
    </button>
  </div>
</form>
      </div>

  </details-dialog>
</details>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

            <button
        type="button"
        class="dropdown-item btn-link js-comment-hide-button"
        role="menuitem"
        aria-label="Hide comment">
        Hide
      </button>

          <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/issue_comments/484361618" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="sGreDAsyxeDiFMYb27gURwAsKFCMXZjsEDwWgqjRtyORt+FSh3gwG78dAQvYmPJ6ShL8K+AqgRdYO3bnHFVQKQ==" />
      <input type="hidden" name="input[id]" value="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">
      <button
        type="submit"
        class="dropdown-item menu-item-danger btn-link"
        aria-label="Delete comment"
        role="menuitem"
        data-confirm="Are you sure you want to delete this?">
        Delete
      </button>
</form>
        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23issuecomment-484361618&amp;report=beyang+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

  </div>


    <span class="timeline-comment-label text-bold tooltipped tooltipped-multiline tooltipped-s" aria-label="This user is a member of the Sourcegraph organization.">
      Member
    </span>





  <h3 class="timeline-comment-header-text f5 text-normal">


    <strong class="css-truncate">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>


    </strong>

    commented

      <a href="#issuecomment-484361618" id="issuecomment-484361618-permalink" class="timestamp js-timestamp"><relative-time datetime="2019-04-18T05:30:55Z">Apr 18, 2019</relative-time></a>


    <span class="js-comment-edit-history">
    </span>
  </h3>
</div>


    <div class="edit-comment-hide">
        <div class="js-minimize-comment d-none">


<div class="flash flash-warn flash-full">
  <button class="flash-close js-comment-hide-minimize-form" type="button"><svg aria-label="Cancel hiding comment" class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg></button>
  <h3 class="f4">Choose a reason for hiding this comment</h3>
  <p class="mb-3">The reason will be displayed to describe this comment to others. <a href="https://help.github.com/articles/managing-disruptive-comments/#hiding-a-comment">Learn more</a>.</p>
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-minimize" action="/sourcegraph/sourcegraph/community/minimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="UI6Ad5d1+F74Cl2435AU/axH7xuKdeu+GWH5Vli4xZ8skr2Pd71LGNwJT3wRUAatOPWRmDgQ02efqxPmvKxAvQ==" />
    <input type="hidden" name="comment_id" value="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">
    <select name="classifier" class="form-select mr-2" aria-label="Reason" required>
      <option value>
      Choose a reason
      </option>
      <option value="SPAM">Spam</option>
<option value="ABUSE">Abuse</option>
<option value="OFF_TOPIC">Off Topic</option>
<option value="OUTDATED">Outdated</option>
<option value="RESOLVED">Resolved</option>
    </select>
    <button type="submit" class="btn">
      Hide comment
    </button>
</form></div>

        </div>


<task-lists disabled sortable>
<table class="d-block">
  <tbody class="d-block">
    <tr class="d-block">
      <td class="d-block comment-body markdown-body  js-comment-body">

          <p>Thanks for pushing up this PR <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alexandnpu">@alexandnpu</a>. I've incorporated this into  <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="434595204" data-permission-text="Issue title is private" data-url="https://github.com/sourcegraph/sourcegraph/issues/3482" data-hovercard-type="pull_request" data-hovercard-url="/sourcegraph/sourcegraph/pull/3482/hovercard" href="https://github.com/sourcegraph/sourcegraph/pull/3482">#3482</a>, so will close this in favor of that. I expect this to ship in 3.4.</p>
      </td>
    </tr>
  </tbody>
</table>
</task-lists>




<div class="comment-reactions  js-reactions-container js-socket-channel js-updatable-content"

      data-channel="reaction:issue-comment:484361618"
      data-url="/_render_node/MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==/comments/reactions"
    >
</div>


    </div>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="yJ5bypln2aH3ch/EsPonTc9/ZUL937SC37+UQIxnOCQSTHlOiQ+pIKi4LUg8QmY9Bx+eY4q/ieBAAWeftyeWmQ==" class="js-comment-update" action="/sourcegraph/sourcegraph/issue_comments/484361618" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="P/gStNmi/X/sYDcyMSJY1VMmgmdBd/6S+s2vwgYrdzeFkVXuLrrC7bB/F9Z/VNZoSQiyNhrz+kAb/id+k7Z3Og==" />
        <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="wkSB/0nsSF7i9uMZtnXVtTr+mVLsXj9CVZu2obiJEjp3fUrWct7wRbhh8IVnVu8E5khsYntIUxxn7J64MQKF6A==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="issuecomment-484361618-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=pull_request_comment" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="opu6+mpbrEYFx8p73oeGrFmtHWryZC57bX+ZJktQEsB4SZh+ejPcx1oN+PdSP8fckc3mS4UEExnywWr5cBC8fQ=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="issue_comment[id]" value="MDEyOklzc3VlQ29tbWVudDQ4NDM2MTYxOA==">
  <input type="hidden" name="issue_comment[bodyVersion]" class="js-body-version" value="1b7d052371c1123bd3f20f025b25b565">
  <textarea name="issue_comment[body]"
            id="issuecomment-484361618-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >Thanks for pushing up this PR @alexandnpu. I&#39;ve incorporated this into  https://github.com/sourcegraph/sourcegraph/pull/3482, so will close this in favor of that. I expect this to ship in 3.4.</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="" class="js-original-line">
    <input type="hidden" name="path" value="" class="js-path">
    <input type="hidden" name="line" value="" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>  </div>
</div>


</div>


</div>




<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDExOkNsb3NlZEV2ZW50MjI4NDY0NjE1Nw==">

        <div class="discussion-item discussion-item-closed" data-team-hovercards-enabled>
  <h3 class="discussion-item-header f5 text-normal" id="event-2284646157">

    <span class="discussion-item-icon">
      <svg class="octicon octicon-circle-slash" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm0 1.3c1.3 0 2.5.44 3.47 1.17l-8 8A5.755 5.755 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zm0 11.41c-1.3 0-2.5-.44-3.47-1.17l8-8c.73.97 1.17 2.17 1.17 3.47 0 3.14-2.56 5.7-5.7 5.7z"/></svg>
    </span>



        <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang"><img class="avatar" height="16" width="16" alt="@beyang" src="https://avatars0.githubusercontent.com/u/1646931?s=60&amp;v=4" /></a>
  <a class="author text-inherit" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1646931" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/beyang">beyang</a>




closed this


    <a href="#event-2284646157" class="timestamp"><relative-time datetime="2019-04-18T05:30:55Z">Apr 18, 2019</relative-time></a>

  </h3>
</div>

  <div class="closed-banner"></div>



</div>



<div class="js-timeline-item js-timeline-progressive-focus-container" data-gid="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">


<div class="timeline-comment-wrapper js-comment-container"
      data-gid="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ=="
      data-url="/_render_node/MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==/timeline/issue_comment">



<div class="avatar-parent-child timeline-comment-avatar">
    <a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu"><img class="avatar rounded-1" height="44" width="44" alt="@alexandnpu" src="https://avatars3.githubusercontent.com/u/1999503?s=88&amp;v=4" /></a>

</div>



<div class="timeline-comment-group js-minimizable-comment-group js-targetable-comment" id="issuecomment-484439099">
    <div class="minimized-comment d-none ">




  <details class="Details-element details-reset border rounded-1 bg-white"
       data-body-version="9fffe6fe31d89970dbb1e023ed78ecb4">
    <summary class="bg-gray border-bottom-0 py-0 px-2">
      <div class="d-flex flex-justify-between flex-items-center">
        <h3 class="timeline-comment-header-text f5 text-gray text-normal text-italic">
              This comment has been minimized.

        </h3>
        <div class="Details-content--closed text-gray f6"><svg class="octicon octicon-unfold position-relative mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z"/></svg>Show comment</div>
        <div class="Details-content--open text-gray f6"><svg class="octicon octicon-fold position-relative mr-1" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z"/></svg>Hide comment</div>
      </div>
    </summary>
    <div class="review-comment border-top pt-3">
      <div class="previewable-edit  js-task-list-container reorderable-task-lists">
        <div class="edit-comment-hide">
          <div class="timeline-comment-actions">



















<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="issuecomment-484439099-minimized-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

            <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="inline-form js-comment-unminimize width-full" action="/sourcegraph/sourcegraph/community/unminimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="11jyLC7/ZOL6vUOe7gmDm11uJedhxP/JYLmh+4LBTGMQbyctP2pFQCNartSPs7nfxWvtVvmkBYjJMvrT/pGeeQ==" />
        <input type="hidden" name="comment_id" value="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==" >
        <button
          type="submit"
          class="dropdown-item btn-link"
          role="menuitem"
          aria-label="Unhide comment">
          Unhide
        </button>
</form>
          <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/issue_comments/484439099" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="YYf1ggf5uYjIJhMiNg1Ie4BSAmwHUgUXyKJXD9gpF0jU9zUoJyl5g/RpJ4vrOAy+j6PRs4duV8gNstqyHi9Jsw==" />
      <input type="hidden" name="input[id]" value="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">
      <button
        type="submit"
        class="dropdown-item menu-item-danger btn-link"
        aria-label="Delete comment"
        role="menuitem"
        data-confirm="Are you sure you want to delete this?">
        Delete
      </button>
</form>
        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23issuecomment-484439099&amp;report=alexandnpu+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

          </div>
            <a class="float-left mt-1" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu"><img class="avatar" height="28" width="28" alt="@alexandnpu" src="https://avatars2.githubusercontent.com/u/1999503?s=60&amp;v=4" /></a>
          <div class="review-comment-contents">
            <h4 class="f5 text-normal d-inline text-gray-dark">
              <strong class="text-gray">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>


              </strong>
              <span class="text-gray">
                  <a href="#issuecomment-484439099" id="issuecomment-484439099-minimized-permalink" class="timestamp"><relative-time datetime="2019-04-18T10:14:46Z">Apr 18, 2019</relative-time></a>
              </span>
            </h4>


            <span
  class="timeline-comment-label tooltipped tooltipped-multiline tooltipped-s"
  aria-label="This user is the author of this pull request.">
  Author
</span>

            <task-lists disabled sortable>
              <div class="comment-body markdown-body p-0 pt-1 js-comment-body ">
                  <p>I am really happy that you can accept my idea.</p>
<p>I am new to GO, and your solution is really better than mine. I did not realize that there is DialUrl interface in redigo. And the standard, <a rel="nofollow" href="https://www.iana.org/assignments/uri-schemes/prov/redis">https://www.iana.org/assignments/uri-schemes/prov/redis</a>.</p>
<p>I learned from you. Thank you!</p>
<p>PS:<br>
I am really expecting it to be released as soon as possible. So my team can use SG again, :).</p>
              </div>
            </task-lists>
          </div>
        </div>

          <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="cvx65HUZoLOFYB7PPbgBRW1p+8erJkJ8O2gzBRW099KoLlhgZXHQMtqqLEOxAEA1pQkA5txGfx6k1sDaLvRZbw==" class="js-comment-update" data-type="json" action="/sourcegraph/sourcegraph/issue_comments/484439099" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="yCN+a099gykfoiXmvig2U5LrORyMjeOTpWzP/JDHItpHGBg1+mq0ko7MwwgB8Ll4MCu+AaZK5mcE3ZtdYHLEpg==" />
            <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="I26xYCxnySjx198nrxFHuNufVKm8tIPWhe4JnKHzbn6WV3pJF1VxM6tAzLt+Mn0JBymhmSui74i3mSGFKHj5rA==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="issuecomment-484439099-minimize-comment-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=pull_request_comment" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="ibLlqexAhvG8OJ+30NmWhPlL1Ax5kRDINnfy0V1uX8RTYMct/Cj2cOPyrTtcYdf0MSsvLQ7xLaqpyQEOZi7xeQ=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="issue_comment[id]" value="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">
  <input type="hidden" name="issue_comment[bodyVersion]" class="js-body-version" value="9fffe6fe31d89970dbb1e023ed78ecb4">
  <textarea name="issue_comment[body]"
            id="issuecomment-484439099-minimize-comment-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >I am really happy that you can accept my idea.

I am new to GO, and your solution is really better than mine. I did not realize that there is DialUrl interface in redigo. And the standard, https://www.iana.org/assignments/uri-schemes/prov/redis.

I learned from you. Thank you!

PS:
I am really expecting it to be released as soon as possible. So my team can use SG again, :).
</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="" class="js-original-line">
    <input type="hidden" name="path" value="" class="js-path">
    <input type="hidden" name="line" value="" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>      </div>
    </div>
  </details>


    </div>
  <div class="unminimized-comment editable-comment comment previewable-edit js-comment js-task-list-container timeline-comment reorderable-task-lists "
       data-body-version="9fffe6fe31d89970dbb1e023ed78ecb4"
       data-unfurl-hide-url="/content_reference_attachments/hide"
       data-unfurl-authenticity-token="NAHoTKG2e+FqxNq0sLhW6Iey1N8x7tJBvlU84EAFwHxnimm377X3WxFEOvbMS8ltNsuPTsUH6+9Y741x3nxqBw==">


<div class="timeline-comment-header clearfix">
  <div class="timeline-comment-actions">

















  <details class="details-overlay details-reset position-relative d-inline-block js-socket-channel js-updatable-content js-reaction-popover-container js-comment-header-reaction-button"
      data-channel="reaction:issue-comment:484439099"
      data-url="/_render_node/MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==/comments/comment_header_reaction_button">
    <summary class="btn-link timeline-comment-action" aria-label="Add your reaction">
      <svg class="octicon octicon-plus-small add-reaction-plus-icon" viewBox="0 0 7 16" version="1.1" width="7" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4H3v3H0v1h3v3h1V8h3V7H4V4z"/></svg>
      <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
    </summary>

<details-menu class="dropdown-menu dropdown-menu-sw add-reaction-popover js-add-reaction-popover anim-scale-in" aria-label="Pick your reaction">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="reaction-popover-form js-pick-reaction" action="/users/sourcegraph/reactions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="Fvco5+i89qRr6CZ2Q/ZYFj3lYuex/7GkcjG1tlShkAPJsJofiS9I7QXSPYtcyITEgQP8ZE3XLuiawS6HLk0nYg==" />
    <p class="text-gray mx-2 my-1">
      <span class="js-reaction-description">Pick your reaction</span>
      <img alt="" width="16" height="16" class="loading-spinner" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
    </p>

    <div role="none" class="dropdown-divider"></div>

    <div class="add-reactions-options mx-1 mb-1">
      <input type="hidden" name="input[subjectId]" value="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">

        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="+1"
          name="input[content]"
          aria-label="React with thumbs up emoji"
          value="THUMBS_UP react">
          <g-emoji alias="+1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" class="emoji">👍</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="-1"
          name="input[content]"
          aria-label="React with thumbs down emoji"
          value="THUMBS_DOWN react">
          <g-emoji alias="-1" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png" class="emoji">👎</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Laugh"
          name="input[content]"
          aria-label="React with laugh emoji"
          value="LAUGH react">
          <g-emoji alias="smile" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" class="emoji">😄</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Hooray"
          name="input[content]"
          aria-label="React with hooray emoji"
          value="HOORAY react">
          <g-emoji alias="tada" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f389.png" class="emoji">🎉</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Confused"
          name="input[content]"
          aria-label="React with confused emoji"
          value="CONFUSED react">
          <g-emoji alias="thinking_face" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f615.png" class="emoji">😕</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Heart"
          name="input[content]"
          aria-label="React with heart emoji"
          value="HEART react">
          <g-emoji alias="heart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" class="emoji">❤️</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Rocket"
          name="input[content]"
          aria-label="React with rocket emoji"
          value="ROCKET react">
          <g-emoji alias="rocket" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f680.png" class="emoji">🚀</g-emoji>
        </button>
        <button
          type="submit"
          role="menuitem"
          class="btn-link add-reactions-options-item js-reaction-option-item"
          data-reaction-label="Eyes"
          name="input[content]"
          aria-label="React with eyes emoji"
          value="EYES react">
          <g-emoji alias="eyes" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f440.png" class="emoji">👀</g-emoji>
        </button>
    </div>
</form></details-menu>

  </details>




<details class="details-overlay details-reset position-relative d-inline-block ">
  <summary class="btn-link timeline-comment-action">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" role="img"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="issuecomment-484439099-permalink"
    role="menuitem"

    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>



<details
  class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark "
  >
  <summary
      class="dropdown-item"
      aria-haspopup="dialog"


        role="menuitem"

      >

    Reference in new issue
  </summary>
  <details-dialog
    aria-label="Reference in new issue"
    class="Box Box--overlay d-flex flex-column anim-fade-in fast Box-overlay--wide"

    >
    <div class="Box-header">
      <button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
      </button>
      <h3 class="Box-title">Reference in new issue</h3>
    </div>

      <div class="Box-body overflow-auto">

<!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/comments/issues" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="mNYFnUJ/d/Ieovy6AKtJJ9nImnRuAkW1DiPH7RusBHMoMGY8jrWet1JjEpI6kKDwc9RKPut3uBNZ75a5dYtaEg==" />
  <dl class="form-group">
    <dt><label for="convert-to-issue-repository-MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">Repository</label></dt>
    <dd>
      <details class="details-reset details-overlay select-menu">
        <summary class="btn select-menu-button" data-menu-button>
          <input type="hidden" name="issue[repository_id]" value="41288708" checked>
          sourcegraph
        </summary>
        <details-menu class="select-menu-modal position-absolute" style="z-index: 99;" src="/sourcegraph/sourcegraph/related_repositories" preload>
          <div class="select-menu-header">
            <span class="select-menu-title">Repositories</span>
          </div>
          <div class="select-menu-filters">
            <div class="select-menu-text-filter">
              <filterable-input src="/sourcegraph/sourcegraph/related_repositories" aria-owns="related-repositories-menu">
                <input type="text" class="form-control" aria-label="Type to filter" placeholder="Find a repository" autofocus>
              </filterable-input>
            </div>
          </div>
          <include-fragment class="octocat-spinner my-6" aria-label="Loading"></include-fragment>
        </details-menu>
      </details>
    </dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-title-MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">Title</label></dt>
    <dd><input id="convert-to-issue-title-MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==" class="form-control" type="text" name="issue[title]" value="I am really happy that you can accept my idea." aria-label="Issue title" autofocus required></dd>
  </dl>
  <dl class="form-group">
    <dt><label for="convert-to-issue-body-MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">Body</label></dt>
    <dd><textarea id="convert-to-issue-body-MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==" name="issue[body]" class="form-control" aria-label="Issue body">I am really happy that you can accept my idea.

I am new to GO, and your solution is really better than mine. I did not realize that there is DialUrl interface in redigo. And the standard, https://www.iana.org/assignments/uri-schemes/prov/redis.

I learned from you. Thank you!

PS:
I am really expecting it to be released as soon as possible. So my team can use SG again, :).

_Originally posted by @alexandnpu in https://github.com/sourcegraph/sourcegraph/pull/3221#issuecomment-484439099_</textarea></dd>
  </dl>

  <div class="d-flex d-sm-block">
    <button type="submit" class="btn btn-primary" data-disable-with="Creating issue..." data-disable-invalid data-ga-click="Issues, create new issue, location:comment_menu logged_in:true">
      Create issue
    </button>
  </div>
</form>
      </div>

  </details-dialog>
</details>

        <div role="none" class="dropdown-divider"></div>

          <button
      type="button"
      class="dropdown-item btn-link js-comment-edit-button"
      role="menuitem"
      aria-label="Edit comment">
      Edit
    </button>

            <button
        type="button"
        class="dropdown-item btn-link js-comment-hide-button"
        role="menuitem"
        aria-label="Hide comment">
        Hide
      </button>

          <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full inline-form js-comment-delete" action="/sourcegraph/sourcegraph/issue_comments/484439099" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="AsOwn4ugRbmESJBt7QRQAq0BODcFoaeBQ8reUD3vAhW3s3A1q3CFsrgHpMQwMRTHovDr6IWd9V6G2lPt++lc7g==" />
      <input type="hidden" name="input[id]" value="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">
      <button
        type="submit"
        class="dropdown-item menu-item-danger btn-link"
        aria-label="Delete comment"
        role="menuitem"
        data-confirm="Are you sure you want to delete this?">
        Delete
      </button>
</form>
        <div role="none" class="dropdown-divider"></div>

          <a aria-label="Report abusive content" role="menuitem" class="dropdown-item btn-link" data-ga-click="Report content, reported by OWNER" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fsourcegraph%2Fsourcegraph%2Fpull%2F3221%23issuecomment-484439099&amp;report=alexandnpu+%28user%29">
      Report abuse
</a>

  </details-menu>
</details>

  </div>




  <span
  class="timeline-comment-label tooltipped tooltipped-multiline tooltipped-s"
  aria-label="This user is the author of this pull request.">
  Author
</span>



  <h3 class="timeline-comment-header-text f5 text-normal">


    <strong class="css-truncate">


  <a class="author text-inherit css-truncate-target" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1999503" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/alexandnpu">alexandnpu</a>


    </strong>

    commented

      <a href="#issuecomment-484439099" id="issuecomment-484439099-permalink" class="timestamp js-timestamp"><relative-time datetime="2019-04-18T10:14:46Z">Apr 18, 2019</relative-time></a>


    <span class="js-comment-edit-history">

  <span class="d-inline-block text-gray-light">&#8226;</span>

  <details class="details-overlay details-reset d-inline-block dropdown">
    <summary class="btn-link no-underline text-gray js-notice">
      <div class="position-relative">
        <span>
            edited
        </span>
        <svg height="11" class="octicon octicon-triangle-down v-align-middle" viewBox="0 0 12 16" version="1.1" width="8" aria-hidden="true"><path fill-rule="evenodd" d="M0 5l6 6 6-6H0z"/></svg>
      </div>
    </summary>
    <details-menu class="anim-scale-in dropdown-menu dropdown-menu-se py-0" style="width:352px" src="/_render_node/MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==/comments/comment_edit_history_log" preload>
      <include-fragment class="octocat-spinner my-3" aria-label="Loading"></include-fragment>
    </details-menu>
  </details>

    </span>
  </h3>
</div>


    <div class="edit-comment-hide">
        <div class="js-minimize-comment d-none">


<div class="flash flash-warn flash-full">
  <button class="flash-close js-comment-hide-minimize-form" type="button"><svg aria-label="Cancel hiding comment" class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg></button>
  <h3 class="f4">Choose a reason for hiding this comment</h3>
  <p class="mb-3">The reason will be displayed to describe this comment to others. <a href="https://help.github.com/articles/managing-disruptive-comments/#hiding-a-comment">Learn more</a>.</p>
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-comment-minimize" action="/sourcegraph/sourcegraph/community/minimize-comment" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="kFYjZPYhbajT7E7ogf5NGYmVAm/oe+RjgIll3xY0dZrsSh6cFune7vfvXCxPPl9JHSd87Foe3LoGQ49v8iDwuA==" />
    <input type="hidden" name="comment_id" value="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">
    <select name="classifier" class="form-select mr-2" aria-label="Reason" required>
      <option value>
      Choose a reason
      </option>
      <option value="SPAM">Spam</option>
<option value="ABUSE">Abuse</option>
<option value="OFF_TOPIC">Off Topic</option>
<option value="OUTDATED">Outdated</option>
<option value="RESOLVED">Resolved</option>
    </select>
    <button type="submit" class="btn">
      Hide comment
    </button>
</form></div>

        </div>


<task-lists disabled sortable>
<table class="d-block">
  <tbody class="d-block">
    <tr class="d-block">
      <td class="d-block comment-body markdown-body  js-comment-body">

          <p>I am really happy that you can accept my idea.</p>
<p>I am new to GO, and your solution is really better than mine. I did not realize that there is DialUrl interface in redigo. And the standard, <a rel="nofollow" href="https://www.iana.org/assignments/uri-schemes/prov/redis">https://www.iana.org/assignments/uri-schemes/prov/redis</a>.</p>
<p>I learned from you. Thank you!</p>
<p>PS:<br>
I am really expecting it to be released as soon as possible. So my team can use SG again, :).</p>
      </td>
    </tr>
  </tbody>
</table>
</task-lists>




<div class="comment-reactions  js-reactions-container js-socket-channel js-updatable-content"

      data-channel="reaction:issue-comment:484439099"
      data-url="/_render_node/MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==/comments/reactions"
    >
</div>


    </div>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="K0N2kV4Z/4pH/EOH4tbOdiuqn9qsmiyZJiB3/J3YEbTxkVQVTnGPCxg2cQtubo8G48pk+9v6Efu5noQjppi/CQ==" class="js-comment-update" action="/sourcegraph/sourcegraph/issue_comments/484439099" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="RQawMoaqjYt76WM3AwgTKrctc3CK3z7cZq/Sz/uZuD3KPdZsM726MOqHhdm80JwBFe30baAYOyjHHoZuCyxeQQ==" />
        <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708" data-preview-authenticity-token="29dfUQKfXKt1mEKbU5yGi/4oGNGsPIUlFTfKDM3Lbctu7pR4Oa3ksC8PUQeCv7w6Ip7t4Tsq6XsnQOIVRED6GQ==">

<div class="comment-form-head tabnav ">
  <nav class="tabnav-tabs" role="tablist">
    <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
    <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
  </nav>


<markdown-toolbar for="issuecomment-484439099-body" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=pull_request_comment" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

</div>


  <p class="comment-form-stale">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg> The content you are editing has changed. Please try again.
  </p>


<div class="write-content js-write-bucket js-uploadable-container js-upload-markdown-image is-default upload-enabled"
    data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="+mlg074kHU09JBy7nI1T7leWC8TK51Cd6KvpJzhg1y4gu0JXrkxtzGLuLjcQNRKen/bw5b2Hbf93FRr4AyB5kw=="
      data-upload-repository-id="41288708"
    >
  <input type="hidden" name="context" value="">

    <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

  <input type="hidden" name="issue_comment[id]" value="MDEyOklzc3VlQ29tbWVudDQ4NDQzOTA5OQ==">
  <input type="hidden" name="issue_comment[bodyVersion]" class="js-body-version" value="9fffe6fe31d89970dbb1e023ed78ecb4">
  <textarea name="issue_comment[body]"
            id="issuecomment-484439099-body"
            placeholder="Leave a comment"
            aria-label="Comment body"
            class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
            data-suggest-emoji="/autocomplete/emoji"
            data-suggest-issue="/suggestions?issue_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            data-suggest-mention="/suggestions?mention_suggester=1&amp;repository=sourcegraph&amp;user_id=sourcegraph"
            >I am really happy that you can accept my idea.

I am new to GO, and your solution is really better than mine. I did not realize that there is DialUrl interface in redigo. And the standard, https://www.iana.org/assignments/uri-schemes/prov/redis.

I learned from you. Thank you!

PS:
I am really expecting it to be released as soon as possible. So my team can use SG again, :).
</textarea>


  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

</div>


  <div class="preview-content">
    <div class="comment js-suggested-changes-container" data-thread-side="">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>

  <div class="clearfix">

    <input type="hidden" name="original-line" value="" class="js-original-line">
    <input type="hidden" name="path" value="" class="js-path">
    <input type="hidden" name="line" value="" class="js-line-number">
    <div class="form-actions comment-form-actions">
      <button class="btn btn-primary" type="submit" data-disable-with>Update comment</button>
      <button class="btn btn-danger js-comment-cancel-button" type="button"
              data-confirm-text="Are you sure you want to discard your unsaved changes?">
        Cancel
      </button>
    </div>
  </div>

  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

</form>  </div>
</div>


</div>


</div>







<!-- Rendered timeline since 2019-04-18 03:14:46 -->
<div id="partial-timeline"
      class="js-timeline-marker js-socket-channel js-updatable-content"
      data-channel="pull_request:267437447"
      data-url="/_render_node/MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3/pull_requests/unread_timeline?variables%5BhasFocusedReviewComment%5D=false&amp;variables%5BhasFocusedReviewThread%5D=false&amp;variables%5BsyntaxHighlightingEnabled%5D=true&amp;variables%5BtimelinePageSize%5D=30&amp;variables%5BtimelineSince%5D=2019-04-18T10%3A14%3A46Z"
      data-last-modified="Thu, 18 Apr 2019 10:14:46 GMT"
      data-gid="MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="d-none js-timeline-marker-form" action="/_graphql/MarkNotificationSubjectAsRead" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="rs8wgr249nYqNxfbxG1zlSMkuprqHVCeWKN41XIoUBIlFoLj5dFoez/ztUezsPn6ETiMXzmyZE3lG5+2m+W9pw==" />
    <input type="hidden" name="variables[subjectId]" value="MDExOlB1bGxSZXF1ZXN0MjY3NDM3NDQ3">
</form></div>


  </div>

  <div class="discussion-timeline-actions">



<div id="partial-pull-merging" class="pull-merging js-pull-merging js-socket-channel js-updatable-content"
     aria-live="polite"
     data-channel="repo:179436078:branch:feature/make_redis_support_password repo:41288708:branch:master repo:41288708:commit:81008f4f999e8aa4d7c47746ee4421334f304af9 issue:429264796:state pull_request:267437447:review_state"
     data-url="/sourcegraph/sourcegraph/pull/3221/show_partial?merge_type=squash&amp;partial=pull_requests%2Fmerging">








<div class="branch-action branch-action-state-error pull-merging-error">
  <span class="branch-action-icon">
    <svg height="32" class="octicon octicon-git-merge" viewBox="0 0 12 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M10 7c-.73 0-1.38.41-1.73 1.02V8C7.22 7.98 6 7.64 5.14 6.98c-.75-.58-1.5-1.61-1.89-2.44A1.993 1.993 0 0 0 2 .99C.89.99 0 1.89 0 3a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2a1.993 1.993 0 0 0 1-3.72V7.67c.67.7 1.44 1.27 2.3 1.69.86.42 2.03.63 2.97.64v-.02c.36.61 1 1.02 1.73 1.02 1.11 0 2-.89 2-2 0-1.11-.89-2-2-2zm-6.8 6c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm8 6c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
  </span>
  <div class="branch-action-body p-3">
    <button class="btn float-right js-merge-box-try-again" type="button">
      <svg class="octicon octicon-sync" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.24 7.4a4.15 4.15 0 0 1-1.2 3.6 4.346 4.346 0 0 1-5.41.54L4.8 10.4.5 9.8l.6 4.2 1.31-1.26c2.36 1.74 5.7 1.57 7.84-.54a5.876 5.876 0 0 0 1.74-4.46l-1.75-.34zM2.96 5a4.346 4.346 0 0 1 5.41-.54L7.2 5.6l4.3.6-.6-4.2-1.31 1.26c-2.36-1.74-5.7-1.57-7.85.54C.5 5.03-.06 6.65.01 8.26l1.75.35A4.17 4.17 0 0 1 2.96 5z"/></svg>
      Try again
    </button>
    <h4 class="merge-branch-heading">Couldn’t update branch</h4>
    <p class="merge-branch-description">Oops, something went wrong.</p>

  </div>
</div>

</div>

        <div class="timeline-comment-wrapper timeline-new-comment js-comment-container ">
  <span class="timeline-comment-avatar "><a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1741180" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/lguychard"><img class="avatar" src="https://avatars1.githubusercontent.com/u/1741180?s=88&amp;v=4" width="44" height="44" alt="@lguychard" /></a></span>

    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-new-comment-form js-needs-timeline-marker-header" action="/sourcegraph/sourcegraph/pull/3221/comment?sticky=true" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="+XzaGGXYaQeJXxPAAQuIq+S72rv5YI3T84jcOB5LW5MChLXaBKzWfyUICtQNcAu1fGqN8vV7LWHVKgODK1j2Jw==" />
      <input type="text" name="required_field_184a" id="required_field_184a" hidden="hidden" class="form-control" />
<input type="hidden" name="timestamp" value="1555594790997" class="form-control" />
<input type="hidden" name="timestamp_secret" value="0dd296cdaf336d8f307548fca9f00adbc0b777390e5f012c82040a0e0efa3749" class="form-control" />

      <div class="timeline-comment">
        <input type="hidden" name="issue" value="3221">
          <div class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=41288708&amp;subject=3221&amp;subject_type=PullRequest" data-preview-authenticity-token="+wRjccS/47FTEzL2pDHOnmzlGwHsvHd++rz6VBj6SsNOPahY/41bqgmEIWp1EvQvsFPuMXuqGyDIy9JNkXHdEQ==">
  <div class="comment-form-head tabnav ">

<markdown-toolbar for="new_comment_field" class="toolbar-commenting ">
  <div class="toolbar-group">
    <md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header">
      <svg class="octicon octicon-text-size" viewBox="0 0 18 16" version="1.1" width="18" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z"/></svg>
    </md-header>

    <md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add bold text <cmd-b>" data-ga-click="Markdown Toolbar, click, bold">
      <svg class="octicon octicon-bold" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z"/></svg>
    </md-bold>

    <md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add italic text <cmd-i>" data-ga-click="Markdown Toolbar, click, italic">
      <svg class="octicon octicon-italic" viewBox="0 0 6 16" version="1.1" width="6" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z"/></svg>
    </md-italic>
  </div>

  <div class="toolbar-group">
    <md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote">
      <svg class="octicon octicon-quote" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    </md-quote>

    <md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code">
      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    </md-code>

    <md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a link <cmd-k>" data-ga-click="Markdown Toolbar, click, link">
      <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg>
    </md-link>
  </div>

  <div class="toolbar-group">
    <md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list">
      <svg class="octicon octicon-list-unordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z"/></svg>
    </md-unordered-list>

    <md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list">
      <svg class="octicon octicon-list-ordered" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.392 8.12c-.129 0-.592.04-.802.07.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3v-.88h-.598zm-.222 3.79v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    </md-ordered-list>

    <md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-n" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list">
      <svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z"/></svg>
    </md-task-list>
  </div>

  <div class="toolbar-group">
    <md-mention tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention">
      <svg class="octicon octicon-mention" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z"/></svg>
    </md-mention>

    <md-ref tabindex="-1" class="toolbar-item tooltipped tooltipped-nw" aria-label="Reference an issue or pull request" data-ga-click="Markdown Toolbar, click, reference">
      <svg class="octicon octicon-bookmark" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z"/></svg>
    </md-ref>

      <details class="details-reset details-overlay toolbar-item select-menu select-menu-modal-right js-saved-reply-container" tabindex="-1">
        <summary class="menu-target" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply">
          <svg class="octicon octicon-reply" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
          <span class="dropdown-caret"></span>
        </summary>
        <details-menu class="select-menu-modal position-absolute right-0" style="z-index: 99;" src="/settings/replies?context=pull_request_comment" preload>
          <div class="select-menu-header d-flex">
            <span class="select-menu-title flex-auto">Select a reply</span>
            <code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
          </div>
          <include-fragment class="select-menu-loading-overlay anim-pulse" aria-label="Loading">
            <svg class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </include-fragment>
        </details-menu>
      </details>
  </div>
</markdown-toolbar>

      <nav class="tabnav-tabs " role="tablist">
        <button type="button" class="btn-link tabnav-tab write-tab js-write-tab selected" role="tab" aria-selected="true">Write</button>
        <button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab" role="tab">Preview</button>
      </nav>
  </div>


  <div class="comment-form-error js-comment-form-error" style="display:none">    There was an error creating your PullRequest.
</div>
  <file-attachment class="js-upload-markdown-image is-default" data-upload-repository-id="41288708" data-upload-policy-url="/upload/policies/assets" data-upload-policy-authenticity-token="MzvXLxLP/VHTRRA8Ya7iUgxopIaEhReEg+h3qzIPurbp6fWrAqeN0IyPIrDtFqMixAhfp/PlKuYcVoR0CU8UCw==">
    <div class="write-content js-write-bucket upload-enabled  js-reaction-suggestion tooltipped tooltipped-ne tooltipped-no-delay tooltipped-align-left-1 hide-reaction-suggestion" data-reaction-markup="Would you like to leave a reaction instead?">

        <input type="hidden" name="saved_reply_id" class="js-saved-reply-id js-resettable-field" value="" data-reset-value="">

      <textarea name="comment[body]"
                id="new_comment_field"

                placeholder="Leave a comment"
                aria-label="Comment body"
                class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field"
                data-suggest-emoji="/autocomplete/emoji"
                data-suggest-issue="/suggestions/pull_request/267437447?repository=sourcegraph&amp;user_id=sourcegraph&amp;issue_suggester=1"
                data-suggest-mention="/suggestions/pull_request/267437447?repository=sourcegraph&amp;user_id=sourcegraph&amp;mention_suggester=1"
                ></textarea>

  <p class="drag-and-drop position-relative d-flex flex-justify-between">
    <input accept=".gif,.jpeg,.jpg,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file"
      multiple="multiple"
      class="manual-file-chooser top-0 right-0 bottom-0 left-0 width-full ml-0 js-manual-file-chooser form-control"
      style="opacity: 0.01; min-height: 0;"
      aria-label="Attach files to your comment">
    <span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
    <span class="position-relative" style="pointer-events: none;">
      <span class="default">
          Attach files by dragging &amp; dropping, selecting or pasting them.
      </span>
      <span class="loading">
        <img alt="" width="16" height="16" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" /> Uploading your files…
      </span>
      <span class="error bad-file">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a
          GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error bad-permissions">
        Attaching documents requires write permission to this repository.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error repository-required">
        We don’t support that file type.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
        </span>
      </span>
      <span class="error too-big">
        Yowza, that’s a big file
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file smaller than 10MB.
        </span>
      </span>
      <span class="error empty">
        This file is empty.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with a file that’s not empty.
        </span>
      </span>
      <span class="error hidden-file">
        This file is hidden.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again</button> with another file.
        </span>
      </span>
      <span class="error failed-request">
        Something went really wrong, and we can’t process that file.
        <span class="drag-and-drop-error-info">
          <button type="button" class="btn-link manual-file-chooser-text">Try again.</button>
        </span>
      </span>
    </span>
    <span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
      <a
        class="tabnav-extra position-relative d-inline"
        href="https://guides.github.com/features/mastering-markdown/"
        target="_blank"
        data-ga-click="Markdown Toolbar, click, help"
        aria-label="Learn about styling with Markdown"

      >
        <svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/></svg>
      </a>
    </span>
  </p>

    </div>
</file-attachment>
  <div class="preview-content overflow-auto border-bottom">
    <input type="hidden" name="original-line" value="" class="js-original-line">
    <input type="hidden" name="path" value="" class="js-path">
    <input type="hidden" name="line" value="" class="js-line-number">
    <div class="comment js-suggested-changes-container" data-thread-side="">
  <div class="comment-body markdown-body js-preview-body">
    <p>Nothing to preview</p>
  </div>
</div>

  </div>



  <div class="comment-form-error comment-form-bottom js-comment-update-error"></div>
</div>

          <div class="form-actions">
            <div id="partial-new-comment-form-actions"
    class="js-socket-channel js-updatable-content"
    data-channel="issue:429264796:state"
      data-url="/sourcegraph/sourcegraph/pull/3221/show_partial?partial=pull_requests%2Fform_actions"
  >

  <button type="submit" class="btn btn-primary" data-disable-with data-disable-invalid>
    Comment
  </button>

        <button type="submit" name="comment_and_open" value="1"
      class="btn js-comment-and-button js-quick-submit-alternative"
      data-comment-text="Reopen and comment"
      data-disable-with

      >
      <span class="js-form-action-text">Reopen pull request</span>
    </button>


</div>

          </div>
      </div>
</form>
    <div class="protip">
      <svg class="octicon octicon-light-bulb text-gray" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"/></svg>
      <strong>ProTip!</strong>
      Add <a href='/sourcegraph/sourcegraph/pull/3221.patch' data-skip-pjax>.patch</a> or <a href='/sourcegraph/sourcegraph/pull/3221.diff' data-skip-pjax>.diff</a> to the end of URLs for Git’s plaintext views.
    </div>
</div>


  </div>
</div>

    </div>
  </div>
  <div hidden>
  <span class="js-add-to-batch-enabled">Add this suggestion to a batch that can be applied as a single commit.</span>
  <span class="js-unchanged-suggestion">This suggestion is invalid because no changes were made to the code.</span>
  <span class="js-closed-pull">Suggestions cannot be applied while the pull request is closed.</span>
  <span class="js-viewing-subset-changes">Suggestions cannot be applied while viewing a subset of changes.</span>
  <span class="js-one-suggestion-per-line">Only one suggestion per line can be applied in a batch.</span>
  <span class="js-reenable-add-to-batch">Add this suggestion to a batch that can be applied as a single commit.</span>
  <span class="js-validation-on-left-blob">Applying suggestions on deleted lines is not supported.</span>
  <span class="js-validation-on-right-blob">You must change the existing code in this line in order to create a valid suggestion.</span>
  <span class="js-outdated-comment">Outdated suggestions cannot be applied.</span>
  <span class="js-resolved-thread">This suggestion has been applied or marked resolved.</span>
  <span class="js-pending-review">Suggestions cannot be applied from pending reviews.</span>
  <div class="form-group errored m-0 error js-suggested-changes-inline-validation-template d-flex" style="cursor: default;">
    <span class="js-suggested-changes-inline-error-message position-relative error m-0" style="max-width: inherit;"></span>
  </div>
</div>


  </div>


  </div>
  <div class="modal-backdrop js-touch-events"></div>
</div>

    </main>
  </div>


  </div>


<div class="footer container-lg width-full px-3" role="contentinfo">
  <div class="position-relative d-flex flex-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
    <ul class="list-style-none d-flex flex-wrap ">
      <li class="mr-3">&copy; 2019 <span title="1.48221s from unicorn-f99dd7c4f-lpzrw">GitHub</span>, Inc.</li>
        <li class="mr-3"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
        <li class="mr-3"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
        <li class="mr-3"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
        <li class="mr-3"><a href="https://githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
        <li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
    </ul>

    <a aria-label="Homepage" title="GitHub" class="footer-octicon mx-lg-4" href="https://github.com">
      <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
</a>
   <ul class="list-style-none d-flex flex-wrap ">
        <li class="mr-3"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
        <li class="mr-3"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
      <li class="mr-3"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
      <li class="mr-3"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
        <li class="mr-3"><a href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
        <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>

    </ul>
  </div>
  <div class="d-flex flex-justify-center pb-6">
    <span class="f6 text-gray-light"></span>
  </div>
</div>



  <div id="ajax-error-message" class="ajax-error-message flash flash-error">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
    </button>
    You can’t perform that action at this time.
  </div>



    <script crossorigin="anonymous" integrity="sha512-eYWkirt5BXd8Z6IvLT/AkE0jvsyFHbTICcEN1Aczj9caa8b+20ToUYPgohknnTlFrLElgEN0HX9Oh8XHbTFNBw==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-4199e113.js"></script>

    <script crossorigin="anonymous" async="async" integrity="sha512-zT3yg8XcIqRtlUJnQovmYSmIl0RfhG7aoMhH4p8XYwmEFK9gxqdExkfLSP0TFp08sqefj+2jtG9z8o3XgnDlMg==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-ead35243.js"></script>



  <div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner" hidden
    >
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
    <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
    <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
  </div>
  <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark" open>
    <summary aria-haspopup="dialog" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
      </button>
      <div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

  <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
  </div>
</div>

  <div aria-live="polite" class="js-global-screen-reader-notice sr-only"></div>

  </body>
</html>

